Что такое Temporal Dead Zone

Ответ

Temporal Dead Zone (TDZ) — это период времени между созданием переменной (область видимости) и её инициализацией, когда к ней нельзя обратиться.

Применяется к let и const, но не к var.

Пример:

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

Особенности:

  • Переменные let/const существуют с момента входа в блок, но недоступны до присваивания.
  • var поднимается (hoisting) со значением undefined, поэтому TDZ для него не существует.

Как избежать:
Инициализируйте переменные до использования.

Ответ 18+ 🔞

А, слушай, вот эта ваша Temporal Dead Zone, TDZ, блядь! Ну это ж классика, ёпта! Представь себе: переменная уже родилась, в области видимости, но она ещё как бы в утробе, недоношенная, блядь. И ты к ней лезешь: «Эй, дай значение!» А она тебе: «Пошёл нахуй, я ещё не готова!» И кидает тебе ReferenceError прямо в ебало.

Это чисто про let и const, да. А старый добрый var — тот по-хамски лезет вперёд, как пьяный дядя на свадьбе, со своим undefined. Для него никакой мёртвой зоны нет, он везде пролезет, падла.

Вот смотри, пример, чтобы совсем пиздец понятно стало:

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

Вот тут и начинается ёперный театр! Интерпретатор видит let x, он знает, что x где-то там есть, но пока это просто призрак, блядь. А ты уже тянешься к нему ручками — и получаешь по шапке. Пиздец и позор.

А всё почему? Потому что движок — он не дурак, он специально так сделал, чтобы мы, распиздяи, не выёбывались и не лезли к переменным, которые ещё нихуя не значат. Порядок, блядь, дисциплина!

Как от этого спастись, спросишь? Да элементарно, Ваня! Не будь мудаком — инициализируй переменную ДО того, как полезешь её использовать. Сделал let — сразу напихал в неё значение, и спи спокойно. Вот и вся магия, в рот меня чих-пых!

Запомни: TDZ — это не баг, это такая хитрая жопа, которая защищает тебя от самого себя. Чтобы ты, такой умный, случайно не выстрелил себе в ногу, пока перезаряжаешь обойму.