Hoisting и TDZ в JavaScript /

Опубликовано: 21 Апрель 2026
на канале: Volodymyr Shaitan | Engineering Mindset
7,057
46

Hoisting в JavaScript: Объяснение для Разработчиков

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

Основные характеристики Hoisting:

1. **Переменные**: Hoisting поднимает только объявления переменных, а не их инициализацию. Доступ к переменной до её объявления вернет `undefined`.
2. **Функции**: Объявления функций также поднимаются, что позволяет вызывать их до объявления в коде.
3. **let и const**: Ведут себя иначе, поскольку не инициализируются при hoisting, что вызывает ошибку ReferenceError при попытке доступа до объявления.
4. **Классы**: Классы в JavaScript также подвергаются hoisting, но остаются неинициализированными до их объявления.

Советы для разработчиков:

Объявляйте переменные в начале области видимости.
Используйте `let` и `const` для избежания ошибок, связанных с hoisting.

Temporal Dead Zone в JavaScript: Объяснение для Разработчиков

Понимайте Temporal Dead Zone (TDZ) в JavaScript! Это термин, описывающий поведение переменных, объявленных через `let` и `const`, до их объявления в коде. TDZ важен для понимания области видимости переменных в современном JavaScript.

Основные характеристики Temporal Dead Zone:

1. **Период Недоступности**: TDZ начинается с начала блока, где переменная объявляется, и продолжается до момента её объявления.
2. **Переменные `let` и `const`**: При попытке доступа к переменной в TDZ возникает ошибка ReferenceError. Это отличается от переменных, объявленных через `var`, которые инициализируются значением `undefined`.
3. **Безопасность и Чистота Кода**: TDZ обеспечивает дополнительный уровень безопасности в коде, предотвращая использование переменных до их объявления. Это способствует написанию более чистого и понятного кода.
4. **Классы**: Классы также подвержены TDZ и остаются неинициализированными до их объявления.

Этот контент идеально подходит для видео, которое объясняет hoisting и TDZ в JavaScript, и поможет разработчикам лучше понять, как работает их код.

00:00 Hoisting
07:07 Temporal Dead Zone | TDZ

Мои соц. сети

Telegram - https://t.me/VS_FRONTEND
LinkedIn -   / vladimir-shaitan  
Twitter -   / vovashaitan  
Facebook -   / vladimir.shaitan  
Instagram -   / vlad.sha  

#frontend #javascript