359p
<aside>
🗣 **실행 컨텍스트(execution context)**란 실행할 코드에 제공할 환경 정보들(식별자, 상위 스코프 정보, this 정보 등)을 모아놓은 객체로, 자바스크립트의 동적 언어로서의 성격을 가장 잘 파악할 수 있는 개념이다.
</aside>
<aside>
📌 Checklist
- [ ] 자바스크립트가 스코프를 기반으로 식별자와 식별자에 바인딩된 값을 관리하는 방식
- [ ] 호이스팅이 발생하는 이유
- [ ] 클로저의 동작 방식
- [ ] 태스크 큐와 이벤트 핸들러, 비동기 처리의 동작 방식
</aside>
23.1 소스코드의 타입
- 다음 4 타입의 소스코드는 실행 컨텍스트를 생성한다. (각 타입은 실행 컨텍스트를 다르게 생성하고 관리 내용이 다르기 때문에 분리한다.)
- 전역 코드 → 평가 후 전역 실행 컨텍스트 생성
- 함수 코드 → 평가 후 함수 실행 컨텍스트 생성
- eval 코드 → 평가 후 eval 실행 컨텍스트 생성
- 모듈 코드 → 평가 후 모듈 실행 컨텍스트 생성
(1) 전역 코드
- 전역 스코프 생성 (최상위 스코프)
- 전역 객체와 전역 변수, 전역 함수 연결
- var 키워드로 선언된 전역 변수 → 전역 객체의 프로퍼티
- 함수 선언문으로 선언된 전역 함수 → 전역 객체의 메서드
(2) 함수 코드
- 지역 스코프 생성
- 지역 변수
- 매개변수
- arguments 객체 관리
- 스코프 체인의 일원으로 연결
(3) eval 코드
- strict mode (엄격 모드)에서 자신만의 독자적인 스코프 생성
(4) 모듈 코드
23.2 소스코드의 평가와 실행
- 자바스크립트 엔진은 소스코드를 2개의 과정으로 나누어 처리
- 소스코드의 평가
- 소스코드의 실행
(1) 소스코드의 평가