렉시컬 환경은 실행 컨텍스트 내부에서 사용되는 변수와 함수 선언의 저장소이며, 스코프 체인의 핵심 구성요소입니다.
렉시컬 환경은 크게 두 구성 요소로 나뉩니다:
LexicalEnvironment = {
EnvironmentRecord: { key: value }, // 변수 저장소
OuterEnvironmentReference: pointer // 상위 렉시컬 환경
}
let, const, function 등이 여기에 들어감렉시컬 환경은 실행 컨텍스트 생성 시 만들어집니다.
실행 컨텍스트는 다음 두 단계로 렉시컬 환경을 설정합니다:
var는 undefined로 초기화 (Variable Environment에 저장)let, const, 함수 선언은 TDZ(Temporal Dead Zone)에 들어감