Код: Выделить всё
for (var i = 0; i < 3; i++) {
setTimeout(() => console.log(i), 1000);
}
// Output: 3, 3, 3
for (let i = 0; i < 3; i++) {
setTimeout(() => console.log(i), 1000);
}
// Output: 0, 1, 2
С помощью let вывод: 0, 1, 2 < /li>
С VAR вывод: 3, 3, 3 < /li>
< /ul>
Это поведение запутало меня, так как я думал, что оба будут только из 0 до 2 и напечатать каждое значение. Обзор может повлиять на это, но я хочу знать , почему именно это происходит и как замыкаются в таком поведении.
Подробнее здесь: https://stackoverflow.com/questions/796 ... settimeout