Scope, Hoisting и TDZ
Лексическое окружение, поднятие переменных и функций, временная мёртвая зона
О чём эта глава
Понимание того, как JavaScript ищет переменные, — ключ к пониманию большинства «странностей» языка. Почему функции можно вызывать до объявления? Почему var ведёт себя не так, как ожидаешь в цикле? Почему let бросает ошибку до объявления, а typeof — нет?
Разберём механику изнутри: лексическое окружение, hoisting, TDZ и блочный скоуп.
Содержание
- Лексическое окружение и цепочка скоупов
- Hoisting: поднятие функций и переменных
- Временная мёртвая зона (TDZ)
- Блочный скоуп, IIFE и var-проблемы
Что ты научишься делать
- Объяснять, как JavaScript ищет переменные по цепочке скоупов
- Понимать, что реально происходит при «поднятии» переменных и функций
- Избегать ошибок TDZ с
letиconst - Правильно использовать блочный скоуп для изоляции кода
- Понимать IIFE и зачем он применялся до ES6
Связанные темы
- Введение в JavaScript — строгий режим
- Переменные и типы данных — var, let, const
- Замыкания — лексическое окружение в действии
Задания
Перейти к заданиям — 2 easy, 1 medium