Вопрос проверяет понимание внутренней модели выполнения JavaScript и хранения переменных.
Лексическое окружение — это внутренняя структура, в которой хранятся переменные и ссылки на внешние области видимости. Оно создаётся при входе в блок кода, функцию или модуль. Именно через лексическое окружение JavaScript разрешает имена переменных. Пользователь напрямую с ним не работает, но оно определяет поведение кода. Без него невозможны замыкания.
Лексическое окружение — базовое понятие для понимания работы JavaScript под капотом.
Лексическое окружение — это структура данных, которая содержит:
записи о переменных и функциях
ссылку на внешнее лексическое окружение
Environment Record
Хранит:
переменные
параметры функций
объявления функций
Ссылка на внешнее окружение
Указывает, где искать переменные, если они не найдены локально.
при выполнении скрипта
при вызове функции
при входе в блок {} с let и const
function example() {
let x = 5
function inner() {
return x
}
return inner()
}
Для inner создаётся лексическое окружение, содержащее ссылку на окружение example.
Замыкание возникает, когда функция сохраняет доступ к лексическому окружению после выхода из него.
Лексическое окружение — это основа механизма областей видимости в JavaScript. Оно определяет, какие переменные доступны в конкретной точке выполнения программы.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию