Я пытаюсь понять, почему моя функция JavaScript возвращает неопределенное значение, хотя я уже объявил и присвоил значение переменной внутри функции. Вот код, который я написал:
Код: Выделить всё
function test() {
console.log(a);
let a = 10;
}
test();
Я ожидал, что это напечатает 10, но вместо этого выдает ошибку ReferenceError. Я знаю, что переменные, объявленные с помощью let, имеют блочную область действия, но меня смущает, как в этом случае работает временная мертвая зона. Может ли кто-нибудь объяснить, почему это происходит и как обрабатывается переменная во время выполнения?
Подробнее здесь:
https://stackoverflow.com/questions/798 ... able-is-de