실행 컨텍스트(Execution Context)

김내현·2024년 10월 27일

개인공부

목록 보기
5/51

실행하려는 JS 코드와 코드를 실행할 때 필요한 정보를 담고 있는 특수한 환경
record(Environment Record): 식별자와 식별자에 바인딩 된 값을 기록
outer(Outer Environment Reference): 바깥 Lexical scope를 가리킴exical scope를 가리킴
this의 바인딩, 스코프의 형성, 프로토타입의 형성
실행 컨텍스트 두가지 타입으로 나뉨

1.Global Context

최상위 실행 컨텍스트
코드를 실행하면 무조건 생성되는 컨텍스트로 웹에서의 window 객체나 nodeJS에서의 global 객체를 생성하고 들고 있는다.

2.Function Context

함수가 실행 될 때마다 함수별로 실행되는 컨텍스트
함수 실행에 대한 모든 정보를 갖고 있다.

3.Memory Heap & Call Stack(Execution Context Stack)

자바스크립트는 하나의 콜스택을 갖는 단일 스레드 기반 언어이자 동적 언어
stack: 특정 데이터 구조를 말함

4.Creation Phase

  • Global Object 생성
    window 또는 global 객체 생성
    함수에서는 arguments 객체 생성
  • this를 window 또는 global에 바인딩
  • 변수와 함수를 Memory Heap에 배정하고 기본 값을 undefined로 저장

5.Execution Phase

  • 코드 실행
  • 필요하다면 새로운 Execution Context를 생성

참조

0개의 댓글