본문 바로가기

dev/JavaScript

자바스크립트 Execution Context 1

Execution Context 개념

Execution contextjavascript 코드를 실행하기 위해 필요한 환경을 말한다. 자바스크립트 엔진이 코드를 실행하기 위해서는 다음 정보를 알아야 한다.

  • 변수 : 전역변수, 지역변수, 매개변수, 객체 프로퍼티
  • 함수 선언
  • Scope 정보
  • this

javascript 엔진은 execution context를 객체로써 관리한다. execution context 객체는 위의 정보를 저장하기 위해 아래와 같이 3개의 프로퍼티를 갖는다.

Exectuin context 객체

각 프로퍼티에 대한 간단한 설명은 다음과 같다.

  • variable object (VO) :  변수, 매개변수, 함수 선언 정보를 담는다.
  • scope chain : 스코프 정보를 담는다.
  • thisValue : this 바인딩 정보를 담는다.

Execution Context의 종류

Execution context는 두 가지로 분류할 수 있다.

  • global execution context(global EC) : 전역 실행 컨텍스트
  • funcational execution context(functional EC) : 각 함수를 실행하기 위한 컨텍스트

Execution Context의 생성과 소멸

  • global execution context : 스크립트 실행 시 생성되며, 스크립트가 끝나면 소멸된다.
  • funcational execution context : 함수 '호출'시 생성되며, 함수가 끝나면 소멸된다.

foo(), bar() 라는 함수가 호출된다고 가정하면 execution context 스택은 다음과 같다.

한편, 함수의 execution context는 함수 호출시 생성된다. 호출 전에는 상위객체의 VO에 함수의 선언만 저장되어 있다. 

 

[참조] https://poiemaweb.com/js-execution-context

'dev > JavaScript' 카테고리의 다른 글

debounce와 throttle  (0) 2020.08.20
JavaScript 안정 정렬  (2) 2020.07.28
JS 코딩테스트를 위한 코드 스니펫  (0) 2020.07.20
CPS 예외 처리 패턴  (1) 2019.11.18
화살표 함수와 this  (0) 2019.05.30