В JavaScript доступны различные типы циклов, одним из наиболее распространенных циклов является цикл for.

Циклы For могут быть чрезвычайно полезны при решении проблем с кодированием и алгоритмами, которые вы можете увидеть на таких сайтах, как leetcode или hackerrank, или их можно использовать в вопросах собеседования по кодированию (однако обратите внимание, что они часто являются более эффективными методами в отношении Big O, чем просто для петля для некоторых из этих проблем.)

Как они работают? Циклы For будут продолжать повторяться (перебирать сами себя) до тех пор, пока результат вставленного оператора не станет ложным, это верно для стандартного цикла for. Также существуют циклы for… in и for… of, которые могут упростить ваш код, если ваш цикл предназначен, например, для перебора всей строки, массива или объекта.

Циклы For можно использовать для решения сложных алгоритмических проблем, но просто чтобы проиллюстрировать пример того, как их можно использовать, а также как цикл for можно превратить в цикл for… of, я буду использовать простой пример. В этом примере я просто напишу функцию, которая переворачивает введенную строку

function reverse(str) {
  let reversed = ''
  for(let i = 0; i < str.length; i++) {
    reversed = str[i] + reversed
  }
  return reversed
}

Этот цикл проходит через строку, начинающуюся с индекса 0 строки, и добавляет каждую букву к новой перевернутой переменной, чтобы перевернуть строку и вернуть новую перевернутую строку. Этот же цикл можно записать как цикл for… of, как показано ниже:

function reverse(str) {
  let reversed = ''
  for(let character of str) {
    reversed = character + reversed
  }
  return reversed
}

В этом цикле for… of вся строка повторяется так же, как и выше, чтобы получить перевернутую строку. Оба цикла достигают одного и того же результата, однако цикл for… of имеет более простой код для итерации по строке.

Веб-документы MDN объясняют оператор for… of с примерами здесь https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of