var имеет область функции, let и const — блочную; let/const недоступны до инициализации из-за временной мёртвой зоны.
Расскажи про переменные var, let, const: области видимости, hoisting, временная мёртвая зона.
var имеет область функции, let и const — блочную; let/const недоступны до инициализации из-за временной мёртвой зоны.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
var имеет область функции, let и const — блочную; let/const недоступны до инициализации из-за временной мёртвой зоны.
Объявление var инициализируется undefined заранее, присваивание остаётся на своём месте. Объявления let/const тоже учитываются до выполнения, но чтение в TDZ бросает ошибку. const запрещает переназначение привязки, а не изменение содержимого объекта.