Этот блог изначально опубликован на сайте моего блога, где вы можете найти полную версию с подробными сведениями и примерами. Нажмите на ссылку ниже, чтобы прочитать статью полностью и узнать больше о технологиях!
👉 Нажмите здесь

Временная мертвая зона в JavaScript — это область блока, в которой переменная недоступна до тех пор, пока компьютер полностью не инициализирует ее значением.

  • Блок – это пара фигурных скобок ({...}), которые используются для группировки нескольких операторов.
  • Инициализация происходит, когда вы присваиваете начальное значение переменной.

Временная мертвая зона – это период времени, в течение которого нельзя получить доступ к объявлениям let и const.

Пример:

Прежде чем углубиться в эту концепцию, я бы порекомендовал вам узнать о Подъеме в JavaScript.

let и const имеют два существенных отличия от var:

  • Они имеют блочную область видимости.
  • При доступе к var до его объявления результат не определен; доступ к let or const до того, как он объявлен, вызывает ReferenceError:

Где именно начинается и заканчивается ТДЗ?

В приведенном выше примере показано, что переменные let и const недоступны до тех пор, пока они не будут инициализированы некоторым значением, а фаза между началом выполнения блока, в котором объявлена ​​переменная let или const, до инициализации этой переменной называется Temporal. Мертвая зона для переменной.
Другими словами, временная мертвая зона блока начинается в начале локальной области блока. Он заканчивается, когда компьютер полностью инициализирует вашу переменную значением.

И в этой зоне JavaScript всегда будет вызывать ошибку ссылки, если кто-то попытается получить доступ к этим переменным.

Пример:

Вышеприведенный результат кода: JavaScript вернет ReferenceError, потому что мы использовали код console.log() для доступа к age до его полной инициализации. Другими словами, мы вызвали age в пределах временной мертвой зоны.

Начало и конец TDZ. В приведенном выше примере Temporal Dead Zone начинается после открывающей скобки функции printAge и продолжается до объявления переменной age.

Временная мертвая зона связана не с тем, где, а с тем, когда осуществляется доступ к let переменной или const константе. Временная мертвая зона относится ко времени, а не к пространству над объявлением let или const.

В приведенном выше примере перед вызовом log() константа возраста объявляется и инициализируется, поэтому она доступна в функции журнала.

Заключение:

Самый эффективный способ преодолеть ошибки временной мертвой зоны – это инициализировать переменные в верхней части области видимости, чтобы при запуске кода он сначала завершал инициализирующую часть, а затем использовал эти переменные. в противном случае вы можете столкнуться с множеством неожиданных ошибок в коде JavaScript.

Изучение новых концепций в JavaScript и обмен ими с другими — моя страсть, и мне доставляет удовольствие помогать и вдохновлять людей. Если у вас есть какие-либо вопросы, не стесняйтесь обращаться!

Присоединяйтесь ко мне в Twitter, Linkedin, GitHub и Dev Community!