Что такое лексическое окружение

Ответ

Лексическое окружение (Lexical Environment) — это внутренняя структура в JavaScript, которая хранит связь между идентификаторами (переменными, функциями) и их значениями в текущей области видимости. Оно состоит из двух частей:

  1. Environment Record — запись, хранящая переменные и их значения.
  2. Ссылка на внешнее окружение (outer) — связь с родительским лексическим окружением.

Пример:

function outer() {
  let x = 10;
  function inner() {
    console.log(x); // 10 (берет из внешнего окружения)
  }
  inner();
}
outer();

Особенности:

  • Создается при запуске функции/блока кода.
  • Определяет доступ к переменным (scope).
  • Вложенные функции имеют доступ к переменным родительских функций (замыкания).