Проверяет понимание области видимости переменных, объявленных с 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
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию