Execution Context, 실행 컨텍스트

<aside> 💡 실행 컨텍스트는 실행할 코드에 제공할 환경 정보를 모아놓은 객체이다.

</aside>

실행 컨텍스트란?

스택과 큐

실행 컨텍스트를 살펴보기 전 스택과 큐의 개념을 살펴보자.

실행 컨텍스는 실행할 코드에 제공할 환경 정보를 모아놓은 객체다. 이때,

  1. 동일한 환경에 있는 코드들을 실행할 때 필요한 환경정보를 모아 컨텍스트를 구성하고,
  2. 이를 콜 스택에 쌓아올리고,
  3. 가장 위에 쌓여있는 컨텍스트와 관련있는 코드들을 실행하는 식으로 전체 코드와 환경 순서를 보장한다.

이떄 동일한 환경은 하나의 실행 컨텍스트를 구성할 수 있는 방법이다. 우리가 흔히 실행 컨텍스트를 구상하는 방법은 함수를 실행하는 것이다.

실행 컨텍스트와 콜 스택

자바스크립트 코드를 처음 실행하는 순간 전역 컨텍스트가 콜 스택에 담긴다.

<aside> 💡 전역 콘텍스트라는 개념은 일반적인 실행 컨텍스트와 특별히 다를것이 없다.

</aside>

최상단의 공간은 코드 내부에서 별도의 실행 명령이 없어도 브라우저에서 자동으로 실행하므로 자바스크립트 파일이 열리는 순간 전역 컨텍스트가 활성화된다.

  1. 콜 스택에서는 전역 컨텍스트 외에 다른 덩어리가 없으므로 전역 컨텍스트와 관련된 코드들을 순차로 진행하다가,
  2. 함수를 호출하면 자바스크립트 엔진은 호출한 함수에 대해 환경 정보를 수집해서 해당 함수의 실행 컨텍스트를 생성하고 콜스택에 담고,
  3. 콜스택 맨 위에 실행 컨텍스트가 놓여있으면 전역 컨텍스트와 관련된 코드의 실행을 일시중단하고,