파피루스

23장, 실행 컨텍스트 본문

Book/모던 자바스크립트 Deep Dive

23장, 실행 컨텍스트

떼굴펜 2024. 5. 30. 14:41

소스 코드

: 실행가능한 코드 ; executable code)

종류

  1. 전역 코드
  2. 함수 코드
  3. eval 코드
  4. 모듈 코드

 

자바스크립트 엔진은 소스코드를 평가와 실행으로 나누어 처리한다.

 

소스코드의 평가

1) 선언문 실행

2) 식별자를 키로 실행 컨텍스트가 관리하는 스코프(렉시컬 환경의 환경 레코드)에 등록

소스코드의 실행 = 런타임 시작

1) 실행 컨텍스트가 관리하는 스코프에서, 실행에 필요한 정보를 검색해서 취득한다.

2) 실행 컨텍스트가 관리하는 스코프에, 실행 결과를 등록한다.

 

 


실행 컨텍스트

: 소스코드를 실행하는 데 필요한 환경을 제공하고 코드의 실행 결과를 스택(stack) 구조로 관리한다. 

역할

1. 전역 코드 평가

: 전역 코드의 선언문 실행 후, 결과를 컨텍스트의 전역 스코프에 등록한다.

 

2. 전역 코드 실행

: 전역 변수에 값이 할당되어 함수가 호출된다.
(함수가 호출되면 전역 코드의 실행을 일시 중단하고 코드 실행 순서를 변경하여 함수 내부로 진입한다.)

 

3. 함수 코드 평가

: 매개변 수 및 지역 변수 선언문 실행 후, 결과를 컨텍스트의 지역 스코프에 등록한다.

(+arguments 객체 생성 및 this 바인딩)

 

4. 함수 코드 실행

: 변수에 값이 할당되고 메서드가 호출된다. 메서드 실행이 종료되면 함수 코드 실행 과정이 종료되고 함수 호출 이전으로 되돌아가 전역 코드 실행을 계속한다.

 

 


렉시컬 환경

: 식별자를 등록하고 관리하는 저장소

 

참고)

- 실행 컨텍스트 스택 : 코드의 실행 순서 관리

- 렉시컬 환경 : 스코프와 식별자 관리

 

렉시컬 환경의 구성

1. 환경 레코드 : 스코프에 포함된 식별자를 등록하고 해당 식발자에 바인딩된 값을 관리한다.

2. 외부 렉시컬 환경에 대한 참조 : 상위 스코프를 가리킨다.

'Book > 모던 자바스크립트 Deep Dive' 카테고리의 다른 글

22장, this  (0) 2024.05.29
21장, 빌트인 객체  (0) 2024.05.29
20장, _ strict mode  (0) 2024.05.28
19장, 프로토 타입  (0) 2024.05.17
18장, 함수와 일급 객체  (0) 2024.05.09