Ответ
В JavaScript есть несколько типов циклов:
for- классический цикл с условием, инициализацией и инкрементом:
for (let i = 0; i < 5; i++) {
console.log(i);
}
while- выполняется, пока условие истинно:
let i = 0;
while (i < 5) {
console.log(i);
i++;
}
do...while- сначала выполняет тело, затем проверяет условие:
let i = 0;
do {
console.log(i);
i++;
} while (i < 5);
for...in- для перебора свойств объекта:
const obj = {a: 1, b: 2};
for (let key in obj) {
console.log(key, obj[key]);
}
for...of- для перебора итерируемых объектов (массивы, строки и т.д.):
const arr = [1, 2, 3];
for (let value of arr) {
console.log(value);
}
Также есть методы массивов (forEach, map, filter и др.), которые могут заменять циклы в некоторых случаях.
Ответ 18+ 🔞
Да ты посмотри, какие у нас в JavaScript закручены спирали для повторения действий! Прямо как в жизни — можно по-разному наступать на одни и те же грабли.
Вот, например, старый добрый for. Классика жанра, как говаривал мой дед. Заводишь счётчик, ставишь условие и поехали крутиться, пока не надоест.
for (let i = 0; i < 5; i++) {
console.log(i); // Выведет 0, 1, 2, 3, 4
}
Дальше — while. Это когда ты такой: "Буду делать, пока не станет плохо". Главное — не забыть внутри что-то менять, а то зациклишься нахуй, и комп загнётся.
let i = 0;
while (i < 5) {
console.log(i); // Тот же результат
i++; // А вот это — святое! Без этого — пиздец.
}
А есть ещё do...while — хитрая жопа. Сначала сделает, а потом спросит: "А можно было?". Гарантированно один раз вломит, даже если условие изначально ложное.
let i = 0;
do {
console.log(i);
i++;
} while (i < 5);
Теперь про перебор. Хочешь потрогать все ключи у объекта? Вот тебе for...in. Бери да разглядывай, что там внутри.
const obj = {a: 1, b: 2};
for (let key in obj) {
console.log(key, obj[key]); // 'a' 1, потом 'b' 2
}
А если у тебя массив или строка — что-то, где значения идут одно за другим — тогда for...of. Он не ключи даёт, а сразу значения, удобно, блядь.
const arr = [1, 2, 3];
for (let value of arr) {
console.log(value); // 1, 2, 3
}
И не забывай, что есть ещё куча умных методов у массивов — forEach, map, filter. Это такие циклы в пиджаке и галстуке. Выглядят солидно, и часто код с ними читать приятнее, чем этот вот классический разгон с let i = 0. Но это уже, как говорится, на любителя и по ситуации.