Замыкание — функция вместе с доступом к лексическому окружению её создания. Var имеет функциональную область, let — блочную.
Что такое замыкание? В чём отличие var от let?
Замыкание — функция вместе с доступом к лексическому окружению её создания. Var имеет функциональную область, let — блочную.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Замыкание — функция вместе с доступом к лексическому окружению её создания. Var имеет функциональную область, let — блочную.
Обращение к var до присваивания даёт undefined, к let до инициализации — ошибку TDZ. В цикле let может создавать отдельную привязку для каждой итерации, а var оставляет общую. Замыкание хранит доступ к привязке, а не обязательно неизменяемую копию значения.