> Что такое лексическое окружение в JavaScript и как оно работает (JavaScript)
Уровень: junior · Роль: frontend · Категория: Технические вопросы
Компании: Арго
Стек: JavaScript
> Пример ответа
Лексическое окружение (Lexical Environment) - это внутренняя структура JavaScript, которая определяет, где и как хранятся переменные и функции, а также как они доступны во время выполнения кода. Каждый раз, когда выполняется функция, блок кода (например, if, for) или глобальный скрипт, создаётся новое лексическое окружение.
Оно состоит из двух частей:
-
Environment Record - объект, хранящий все локальные переменные, объявленные с
let,const,var, а также функции и параметры. -
Ссылка на внешнее лексическое окружение - позволяет обращаться к переменным из родительской области видимости (замыкания).
Как это работает на примере:
JAVASCRIPTlet a = 1; // глобальное окружение: { a: 1, внешнее: null }function outer() {let b = 2; // окружение outer: { b: 2, внешнее: глобальное }function inner() {let c = 3; // окружение inner: { c: 3, внешнее: outer }console.log(a + b + c); // 6 - цепочка окружений}inner();}outer();
При вызове inner() JavaScript сначала ищет c в своём окружении, затем b - во внешнем (outer), затем a - в глобальном. Если переменная не найдена нигде - возникает ReferenceError. После завершения функции её лексическое окружение может быть уничтожено сборщиком мусора, если на него нет ссылок (например, из замыканий).
> Похожие задачи по frontend
Как решать задачу анимации шаг за шагом
Что такое Redux, зачем он нужен и как устроен
Что происходит при попытке присвоить свойство примитиву в JavaScript
Как работает Promise.all и как реализовать аналог с обработкой reject в JavaScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью