실행 컨텍스트
1. 실행 컨텍스트란?
- JS 코드가 실행되고 있는 컨텍스트(환경)를 제공하는 객체입니다.
- 실행할 코드에 대한 정보를 가지고 있습니다.
2. “실행할 코드'와 콜스택 (=실행스택 = Excution Stack)
- 함수가 실행될 때마다 Call Stack이 쌓이고 끝나면 나가고 이런 방식으로 이루어 집니다.
3. 실행할 코드
- 전역 코드
- 전역 영역에 존재하는 코드는 전역 컨텍스트가 생성됩니다.
- 콜스택에 전역 컨텍스트는 하나만 가지고 있습니다.
- 자바스크립트 파일이 실행되면 가장 먼저 전역 컨텍스트부터 활성화됩니다.
- 함수코드
- 함수 내에 존재하는 코드를 실행하기 위한 함수 컨텍스트
- eval코드
- eval함수로 실행되는 코드를 위한 실행 컨텍스트
- 요즘에 잘 쓰지 않습니다.
4. 컨텍스트에 담기는 정보

- VariableEnvironment: 변수 객체(Variable Object)
- LexicalEnvironment
- Environment Record
- 변수와 함수 선언등을 저장합니다.
- 코드가 실행되기 전에 정보를 모두 수집합니다.
- 자바스크립트 엔진은 실행되기 전에 코드의 변수명을 모두 알고 있습니다. → hoisting
- 해당 변수가 어떤 값을 할당했는지는 관심있지 않습니다.
- Outer
- 다른 LexicalEnvironment를 참조하기 위함입니다.
- scope 탐색
- (바깥에 있는 Lexical에는 어떤 것이 있는 지 찾습니다.)
- ThisBinding
- 현재 컨텍스트의 this가 어디를 가르치는지 확인합니다.
Last modified: 2022년 02월 22일
Comments