01-콜 스택은 자바스크립트 엔진에서 실행 컨텍스트들을 관리합니다.
02-콜 스택에는 다음과 같은 컨텍스트들이 생성, 관리됩니다. . 전역 실행 컨텍스트 (Global Execution Context) . 함수 실행 컨텍스트 (Function Execution Context) . Eval 실행 컨텍스트 (Eval Execution Context)
03-실행 컨텍스트는 코드가 실행되기 전에 전처리 과정을 통해 생성됩니다.
04-실행 컨텍스트는 아래와 같은 역할을 수행합니다. . 변수와 함수의 선언 및 초기화 관리: . 스코프 체인 관리: . this 바인딩 관리:
05-실행 컨텍스트는 아래와 같은 구조로 하위 개체들을 관리합니다.
ExecutionContext ├── LexicalEnvironment │ ├── EnvironmentRecord │ │ ├── DeclarativeEnvironmentRecord │ │ │ ├── 변수명 1 (let, const, var) │ │ │ ├── 변수명 2 (let, const, var) │ │ │ └── 함수 선언 이름 1 │ │ └── ObjectEnvironmentRecord │ │ ├── 전역 객체 속성 1 │ │ ├── 전역 객체 속성 2 │ │ └── 전역 객체 속성 N │ └── OuterEnvironmentReference ├── VariableEnvironment │ ├── EnvironmentRecord │ │ ├── DeclarativeEnvironmentRecord │ │ │ ├── 변수명 1 (var) │ │ │ ├── 변수명 2 (var) │ │ │ └── 함수 선언 이름 1 │ └── OuterEnvironmentReference └── ThisBinding
06-선언문(Declarations)의 일종인 var, let, const, function, class들 모두 실행 컨텍스트의 룰에 따라 전처리됩니다.
07-var 와 funciton은 실행 컨텍스트의 일부인 Variable Environment의 룰에 따라 관리됩니다.
08-let과 const, class는 실행 컨텍스트의 일부인 Lexical Environment의 룰에 따라 관리됩니다.
09-var 와 funciton은 Variable Environment의 룰에 따라 함수 스코프를 가집니다.