렉시컬 환경은 실행 컨텍스트(execution context) 내부에 생성되며, 변수 할당, 함수 호출 및 스코프 관리와 같은 작업을 지원합니다. 예를 들어, 함수가 호출될 때마다 새로운 렉시컬 환경이 생성되며, 그 함수 내에서 선언된 변수와 함수가 해당 렉시컬 환경에 저장됩니다.
let zero = 0;
function scope0 (){
let one = 1;
if(one == 1){
let two = 2;
}
function scope1(){
let three = 3;
}
}
Global Lexical Environment
zero = 0
scope0: fn(){}
outer:null
scope0 Lexical Environment
one = 1;
scope1: fn(){}
outer: [global Lexical Environment]
if block Lexical Environment
two = 2;
outer:[Global Lexical Environment, scope0 Lexical Environment]
scope1 Lexical Environment
three= 3;
outer:[Global Lexical Environment, scope0 Lexical Environment]