Что такое temporal dead zone (временная мёртвая зона) в JavaScript и как она влияет на переменные?

Этот вопрос проверяет знания о поведении переменных, объявленных с помощью let и const, а также понимание контекста выполнения кода в JavaScript.

Короткий ответ

Temporal dead zone (TDZ) — это период времени от начала области видимости переменной, объявленной с помощью let или const, до момента её инициализации. В TDZ переменные недоступны и попытка к ним обратиться вызовет ошибку. Это помогает избежать непредсказуемого поведения при работе с переменными.

Длинный ответ

Temporal dead zone (временная мёртвая зона) — это концепция, связанная с переменными, объявленными с помощью let и const. В отличие от переменных, объявленных с var, которые автоматически инициализируются значением undefined, переменные с let и const не инициализируются до тех пор, пока выполнение кода не дойдёт до строки, где они объявлены. До этого момента они находятся в TDZ и попытка доступа к ним приведёт к ошибке ReferenceError.

 

Пример:

console.log(myVar); // undefined 
var myVar = 5; 

console.log(myLet); // ReferenceError: Cannot access 'myLet' before initialization 
let myLet = 10;

В этом примере var ведёт себя так, как будто она «поднята» (hoisted) в начало, но переменная myLet недоступна до её фактической инициализации. Это и есть temporal dead zone — участок кода, где переменная объявлена, но ещё не доступна для использования.

 

TDZ помогает избежать ошибок, когда переменные используются до их инициализации, что делает код более надёжным и предсказуемым.

Уровень

  • Рейтинг:

    2

  • Сложность:

    7

Навыки

  • JavaScript

    JavaScript

Ключевые слова

Подпишись на React Developer в телеграм