Задать вопрос
@Torento20345

Как инициализируются переменные let и var в цикле for?

У нас есть цикл for.
Каким образом там переменные создаются и инициализируются?
Почему получается так, что var создается как бы вне цикла и получает только конечный результат для всех console.log(i)
А let у нас присваивает каждому отдельно?
  • Вопрос задан
  • 169 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 2
sergiks
@sergiks Куратор тега JavaScript
♬♬
С let на каждой итерации создаётся окружение.

См. ECMASCript CreatePerIterationEnvironment( perIterationBindings )

Можно так переписать:
for(var i = 0; i < 3; i++) {
  let j = i; // доступна только на этой итерации в этом блоке
  setTimeout(() => console.log(j), 0);
}
/*
0
1
2
*/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы