JavaScript: let и var
обращение к переменным до их объявления в JavaScript

Что получится, если попробвать вывести в консоль значения переменных до их объявления. Рассмотрим такие примеры для переменных, созданных с помощью директив let
и var
.
function showMe() {
console.log(name);
console.log(age);
var name = "Ivan";
let age = 25;
}
showMe();
Результат:
undefined
ReferenceError
Переменная name
объявлена директивой var
. Это означает, что для неё нет временной мертвой зоны (DMZ, той части кода, которая находится до объявления перменной). Поэтому при обращении к name
будет выведено её значение по умолчанию undefined
, которое будет существовать до тех пора пока исполнение кода не дойдет до строчки, где определяется переменная.
Переменная age
объявлена директивой let
. Это означает, что у нее есть временная мертвая зона. Доступ к такой переменной до её инициализации завершится ошибкой. JavaScript выбросит исключение ReferenceError
.
Спасибо за внимание.