Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: const, for loop, block scope, variable declaration

Почему в цикле for можно объявить const и она не вызовет ошибку переопределения?

Проверяет понимание области видимости переменных, объявленных с const в цикле for, и почему это не вызывает ошибку переопределения.

Короткий ответ

В цикле for переменная, объявленная с const, создается заново на каждой итерации благодаря блочной области видимости. Каждая итерация имеет свою собственную область видимости, поэтому const не переопределяется, а создается новая переменная. Это работает только с циклом for, а не с for...in или for...of.

Длинный ответ

Почему const в цикле for не вызывает ошибку переопределения?

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

Как это работает?

Цикл for состоит из трех частей: инициализация, условие и обновление. Переменная в инициализации объявляется один раз, но на каждой итерации создается новая область видимости, в которой эта переменная существует. Для const это допустимо, так как в каждой области видимости переменная объявляется только один раз.

for (const i = 0; i < 3; i++) {
  console.log(i); // 0, 1, 2
}
// i не доступна вне цикла

В этом примере i объявляется с const на каждой итерации, но значение увеличивается через i++. Это работает, потому что JavaScript создает новую переменную i для каждой итерации, копируя предыдущее значение и увеличивая его.

Где это применяется?

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

for (const i = 0; i < 3; i++) {
  setTimeout(() => console.log(i), 100); // 0, 1, 2
}

Без const (с var) все вызовы вывели бы 3, так как переменная была бы общей.

Вывод

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

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    3

  • Сложность:

    4

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#const

#for loop

#block scope

#variable declaration

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию