В течение последних нескольких недель я изучал алгоритмы и структуры данных, чтобы укрепить свои навыки и подготовиться к предстоящим собеседованиям при приеме на работу и задачам кодирования. Что-то, что я понял, решая практические задачи и просматривая обучающие видео, это то, что существует множество различных типов циклов, о некоторых из которых я раньше даже не знал. Я хотел написать пост с обзором циклов, чтобы лучше понять, как они работают и в чем различия между ними.

Я собираюсь рассмотреть следующие операторы циклов JavaScript (как видите, их довольно много):

  1. for заявление
  2. Оператор do…while
  3. Оператор пока
  4. Оператор for…in
  5. for…of заявление

Для справки, вот официальная документация: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Loops_and_iteration

Заявление для

См. ниже пример цикла for:

for (let i = 0; i < 5; i += 1) {
  console.log(i);
};
//output: 0, 1, 2, 3, 4

Разберем по частям:

  • В скобках первая часть let i = 0 – это так называемое выражение инициализации. Здесь мы объявляем переменную i и присваиваем ей значение 0, определяя счетчик, с которого начнется цикл.
  • Вторая часть, i ‹ 5, известна как выражение условия. Это определяет, когда цикл остановится, то есть в момент, когда это выражение условия оценивается как false, поэтому, когда iбольше или равно 5 .
  • Третья и последняя часть, i += 1, представляет собой выражение приращения. Это означает, что каждый раз, когда мы повторяем цикл, пока выражение условия все еще оценивается как true, увеличивается i на 1 .

Подводя итог, оператор for представляет собой цикл, который повторяет действие некоторое количество раз, пока указанное условие не будет оценено как false.

Выполнение…пока Заявление

Ниже приведен пример цикла do…while:

let i = 0
do {
  i += 2;
  console.log(i);
} while (i < 6);
//output: 2, 4, 6

Теперь давайте разберем это:

  • Объявляется переменная i, которой присваивается значение 0, которое является нашим счетчиком.
  • Внутри блока do находится наше инструкция, говорящая о добавлении 2 к i, а затем в консольном журнале i. Этот оператор всегда выполняется один раз перед проверкой условия while .
  • Затем ключевое слово while используется для установки нашего условия, поэтому в этом случае увеличивайте i на2, пока i больше не меньше 6 или когда условие оценивается как false.

Подводя итог, можно сказать, что оператор do…while похож на оператор for, поскольку он повторяется до тех пор, пока указанное условие не станет ложным, после чего петля заканчивается. Эти типы циклов можно использовать, когда вы хотите, чтобы оператор всегда выполнялся хотя бы один раз перед проверкой условия.

пока Заявление

См. ниже пример цикла while:

let i = 0; 
 
while (i < 5) {        
  console.log(i);
  i++;
}
//output: 0, 1, 2, 3, 4

Циклы while выполняются до тех пор, пока указанное условие оценивается как true, поэтому в этом случае i меньше 5 . Если условие становится false, оператор внутри цикла прекращает выполнение.

Заявление for…of

Ниже приведен пример цикла for…of:

const array = ['apple', 'banana', 'orange'];
for (const word of array) {
  console.log(words);
}
//output: "apple", "banana", "orange

Циклы for…of перебирают итерируемые объекты, такие как строки или массивы. Две основные части по обе стороны от ключевого слова of — это переменная и итерируемая. Итак, в этом примере мы записываем в консоль каждую из переменных или строк внутри массива, который является итерируемым.

for…in Заявление

Ниже приведен пример цикла for…in:

const obj = { a: 2, c: 4, e: 6 };
for (const property in obj) {
  console.log(`${property}: ${obj[property]}`);
}
//output: "a: 2", "c: 4", "e: 6"

Как видите, циклы for…in очень похожи на циклы for…of. Однако основное отличие состоит в том, что циклы for…in перебирают перечисляемые свойства объекта в произвольном порядке. По сравнению с циклами for…of, которые перебирают значения, которые итерируемый объект определяет для повторения.