Что выведет следующий код?
for (var i = 0; i < 3; i++) {
setTimeout(function () {
console.log(i);
}, 100);
}
Варианты ответа:
A)
1
2
B)
3
3
C)
1
2
(в случайном порядке)
D)
---
✅ Правильный ответ: B
Почему:
Переменная
i объявлена через var, а значит — она общая для всех итераций. К моменту выполнения setTimeout, цикл уже завершился, и значение и равно 3. Каждая отложенная функция видит одно и то же значение.@javascriptv