Задача на замыкание: что выведет код с var в цикле и как это исправить?

В типичном цикле с var отложенные callbacks захватывают одну общую переменную и видят её итоговое значение; точный вывод зависит от кода.

Короткий ответ

Что ответить на собеседовании

В типичном цикле с var отложенные callbacks захватывают одну общую переменную и видят её итоговое значение; точный вывод зависит от кода.

Подробный разбор

Ответ с пояснениями

В типичном цикле с var отложенные callbacks захватывают одну общую переменную и видят её итоговое значение; точный вывод зависит от кода.

Например, три timeout в цикле for (var i = 0; i < 3; i++) обычно выведут три раза 3. let создаёт отдельную привязку на итерацию; альтернативой служит функция с аргументом. Для синхронного callback поведение будет другим.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее