728x90
자바스크립트 엔진은 소스코드를 2개의 과정을 거친다. "소스코드의 평가"와 "소스코드의 실행" 과정으로 나누어 처리한다.
1. 소스 코드의 평가 (선언문)
소스코드 평가 과정에서 실행 컨텍스를 생성하고 변수와, 함수등의 선언문만 먼저 실행 즉 변수나 함수 식별자를 키로 실행 컨텍스트가 관리하는 렉시컬 환경의 환경 레코드에 등록한다.
2. 소스 코드의 실행
소스코드 평가 과정이 끝나면 비로소 선언문을 제외한 소스코드가 순차적으로 실행되기 시작한다. (런타임의 실행) 이 때 소스코드 실행에 필요한 정보, 즉 변수나 함수의 참조를 실행 컨텍스트가 관리하는 스코프에서 검색해서 취득한다. 그리고 변수 값의 변경 등 소스코드의 실행 결과는 다시 실행 컨텍스가 관리하는 스코프에 등록된다.
3. 예시를 통한 이해
var x;
x = 1;
- 먼저 소스 평가 과정에서 변수 선언문 var x;를 먼저 실행한다. 이때 생성된 변수 식별자 x는 실행 컨텍스트가 관리하는 스코프에 등록되고 undefined로 초기화
- 실행에서는 변수 할당문 x=1만 실행
728x90