[자바스크립트] 실행컨텍스트

Dan·2023년 3월 7일
0

자바스크립트

목록 보기
3/4

실행 컨텍스트는 함수의 실행, 호이스팅, 렉시컬 환경, 클로저 같은 개념들을 관통하는 하나의 큰 개념이다

  • 실행 컨택스트는 현재 실행중인 코드에 대한 세부 정보(제어 흐름의 위치, 선언된 변수와 함수, this, arguments 등) 를 담고있는 데이터 구조이다.

  • 실행 컨텍스트 종류에는 두가지가 있다.

    1. Global Execution Context  -  스크립트가 처음 실행될때 생성된다.

    • 가장 먼저 콜스택에 올라가는 EC이다.
    • 전역 EC는 일반적인 다른 EC들과 달리 arguments 객체가 없으며, 전역 객체 하나만을 포함하는 스코프 체인과 this 가 있다.
    • 전역 EC는 <script /> 태그를 마주치면, 생성된다.

    2. Function Execution Context  -  함수가 호출될때 생성된다.

    • 함수가 호출될 때마다 생성되는 EC로 arguments 와 스코프 체인, this 가 있다.
  • 두 컨택스트는 실행 컨택스트 스택 이라는 자료구조에 저장되고 관리된다.

  • 실행 컨택스트 스택이 바로 흔히 말하는 콜 스택이다.

  • 전역 실행 컨텍스트는 스크립트 실행 시 가장 처음 생성되기 때문에 스택의 가장 아래 들어간다.

  • 이후 코드가 실행되면서 함수가 호출되면 함수의 실행 컨텍스트가 만들어지고, 전역 실행 컨텍스트 위로 올라간다.

  • 실행 컨텍스트는 생성단계와 실행 단계가 있다.

  • 생성 단계에서 렉시컬 환경이 초기화되고 this 바인딩이 이루어진다.

참고
자바스크립트 - 실행 컨택스트(Execution Context) 와 렉시컬 환경(Lexical Environment)
변수의 유효범위와 클로저

0개의 댓글