Вопрос проверяет понимание поднятия объявлений (hoisting), областей видимости и причины TDZ для let/const.
Короткий ответ
Hoisting — это когда объявления “обрабатываются” до выполнения кода. У var объявление поднимается и переменная сразу инициализируется как undefined, поэтому к ней можно обратиться до строки объявления (получишь undefined). У let и const тоже есть поднятие объявления, но до фактической инициализации переменная находится в TDZ (temporal dead zone), и доступ к ней до объявления вызывает ReferenceError. const дополнительно требует инициализацию сразу при объявлении.
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.