[typescript] 실행 컨텍스트의 생성 순서는 어떻게 되나요?

코드가 실행되면 다음과 같은 순서로 실행 컨텍스트가 생성됩니다:

  1. Global Execution Context (전역 실행 컨텍스트): 코드가 실행되면 가장 먼저 전역 실행 컨텍스트가 생성됩니다. 이 과정에서 전역 객체와 전역 스코프가 설정됩니다.

  2. Function Execution Context (함수 실행 컨텍스트): 함수가 호출될 때마다 해당 함수에 대한 실행 컨텍스트가 생성됩니다. 각 함수 실행 컨텍스트는 자체 스코프를 가지며, 함수의 매개변수, 지역 변수 및 내부 함수에 대한 참조를 포함합니다.

  3. Evaluation Context (평가 컨텍스트): 코드 실행 중 함수 호출, 변수 할당, 식 평가 등의 작업이 발생할 때마다 해당 작업을 위한 평가 컨텍스트가 생성됩니다.

이러한 실행 컨텍스트들은 콜 스택(Stack) 에 쌓이고, 실행이 완료되면 순차적으로 제거됩니다. 한 번에 하나의 실행 컨텍스트만이 활성화되며, 그 컨텍스트 내의 작업이 완료되면 이전 컨텍스트로 다시 돌아갑니다.

이를 통해 TypeScript는 코드 실행 시 변수의 스코프, 클로저, 호이스팅 및 함수 호출 시의 작동 방식을 유연하게 다룰 수 있게 됩니다.