JavaScript: Отличие var от let и можно ли не глядя заменить все var на let?

2018-05-08

Приведу пример кода, который ярко демонстрирует отличие let от var:


for (var i=0; i<3; i++) {
setTimeout(function() {
console.log(i);
}, 1);
}

в этом случаем мы в консоли увидем: «3», 3 раза.

Заменим var на let:

for (let i=0; i<3; i++) {
setTimeout(function() {
console.log(i);
}, 1);
}

в этом случаем мы в консоли увидем: «0, 1, 2».

Такого же эффекта мы бы могли добиться, добавив замыкание в 1м примере, но код будет уже другой.

В общем на вопрос: «Можно ли не глядя заменить все var на let (или const)?», я бы ответил — нельзя!



Добавить комментарий