Вебсправочник
Справочник JavaScript

Циклы for и for...of: повторение действий

Как перебрать массив, получить индекс и не заблокировать страницу бесконечным циклом.

Основная идея

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

Синхронный длинный цикл занимает главный поток браузера. Пока он выполняется, интерфейс может не реагировать на действия. Не запускайте бесконечные примеры на рабочей странице и не считайте цикл подходящим способом ожидания времени.

Пример JavaScript

const topics = ["HTML", "CSS", "JavaScript"];
for (const topic of topics) {
  console.log(topic);
}
for (let index = 0; index < topics.length; index += 1) {
  console.log(index + 1, topics[index]);
}

Первый цикл выводит названия, второй добавляет номера, начиная с единицы. Индексы массива при этом начинаются с нуля.

Частая ошибка

For…in перечисляет ключи, а не значения массива, и может затронуть дополнительные перечисляемые свойства. Не используйте его автоматически вместо for…of.

Самостоятельная проверка

Добавьте новую тему и убедитесь, что оба цикла её обработали. Затем напишите условие пропуска одной темы через continue.

Код здесь показан для изучения. Встроенная песочница сайта выполняет только HTML/CSS. JavaScript проверяйте в собственном учебном файле или консоли своего тестового проекта; не вставляйте непонятный код на страницах с личными данными.

Следующие темы: массивы, map и filter.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.