Назад к вопросам
IT One
Middle+
1
let x = 5; (function () { console.log(x); let x = 0; })()
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В этом коде будет ошибка ReferenceError: Cannot access 'x' before initialization.
Почему так происходит:
- Внутри функции объявлена переменная
xс помощьюlet. - Переменные, объявленные через
letиconst, находятся в "временной мёртвой зоне" (Temporal Dead Zone) с начала блока до места объявления. - При вызове
console.log(x)переменнаяxуже объявлена, но ещё не инициализирована, поэтому доступ к ней вызывает ошибку.
Если бы x внутри функции была объявлена через var, то вывод был бы undefined, так как var поднимается (hoisting) и инициализируется значением undefined.
Итог: код выбросит ошибку из-за попытки доступа к let-переменной до её объявления.