Перейти к основному содержимому
Об авторе
Проекты
Знания
Знания/JavaScript/lexical-vs-variable

В чём разница между `LexicalEnvironment` и `VariableEnvironment`?

УглублённыйОбласть видимости и замыкания
  • VariableEnvironment — фиксируется при создании EC, хранит только var объявления
  • LexicalEnvironment — изначально указывает на тот же Environment Record, но может изменяться при входе в блок {}:
    1. При входе в блок { let x = 1; } создаётся новый LexicalEnvironment для блока
    2. VariableEnvironment не меняется — var остаётся в функциональном scope
  • Именно поэтому let/const имеют блочную область видимости, а var — функциональную
  • Главная
  • Об авторе
  • Проекты
  • Знания
Логотип nKolmykov