자바스크립트의 동작 원리를 담고있는 핵심 개념
코드의 종류
-
전역코드 : 전역에 존재하는 코드이며 함수 클래스등은 미포함
- 함수코드: 함수 내부에 존재하는 소스코드이며 중첩함수 클래스등 내부코드는 미포함
- eval 코드: 빌트인 전역함수인 eval함수에 인자로 전달되어 실행되는 소스코드
- 모듈코드: 모듈 내부에 존재하는 소스코드, 모듈 내부의 함수,클래스등 내부코드는 미포함
위 타입에 따라 실행 컨텍스트를 생성하는 과정과 관리 내용이 다르다.
그러나 결론적으로 각 코드가 평가되면 실행 컨텍스트가 생성된다.
엔진은 소스코드를 평가와 실행으로 나누어 처리한다.
- 평가과정에서는 실행 컨텍스트를 생성하고 변수 함수등의 선언문 먼저 실행
- 생성된 변수나 함수 식별자를 키로
- 실행 컨테긋트과 관리하는 스코프(렉시컬 환경의 환경레코드)등록
위 과정이 끝나면 코드가 순차적으로 실행된다.(런타임)
이때 필요한 정보(변수나 함수의 참조)를 실행 컨텍스트가 관리하는 스코프에서 검색해 취득한다.
즉 코드 평가 결과 → 실행 컨택스트