Загрузка...
Загрузка...
Продолжая работу с платформой, вы принимаете условия Политики конфиденциальности и использование файлов cookie.
👋 Привет! Я Дастан, автор Hack Frontend. Всегда рад профессиональному нетворкингу => добавляйся в LinkedIn.
Лексическое окружение (Lexical Environment) — это внутренняя структура, которая используется движком JavaScript для хранения переменных, объявленных в определённой области видимости, а также для определения того, где и как эти переменные можно использовать.
Каждая функция, блок {}, и глобальная область создают своё лексическое окружение при выполнении.
Лексическое окружение состоит из двух частей:
function outer() {
let a = 1;
function inner() {
let b = 2;
console.log(a + b);
}
inner();
}
outer();
outer, создается Lexical Environment для outer с переменной a.inner создается Lexical Environment для inner с переменной b, и она имеет доступ к a через замыкание (closure).JavaScript использует лексическую область видимости, а это значит:
Переменные доступны в зависимости от места определения в коде, а не от места вызова.
let x = 10;
function log() {
console.log(x);
}
function run() {
let x = 20;
log(); // ❗ Выведет 10, а не 20!
}
run();
log() запоминает контекст своего определения, а не вызова
Важно:
Лексическое окружение создается при запуске функции и живет до тех пор, пока на него есть ссылки (например, через замыкания).