미새문지

실행 컨텍스트(Execution Context) 본문

개발 TIL

실행 컨텍스트(Execution Context)

문미새 2025. 1. 8. 17:58
728x90

실행 컨텍스트(Execution Context)

실행 컨텍스트는 자바스크립트 코드가 실행되는 환경을 정의하는 개념으로, 스크립트나 함수 실행 시 관련 변수, 객체, 함수 등의 정보를 담고 있는 구조이다.

자바스크립트의 스코프, 호이스팅, 클로저 등을 이해하는 핵심 개념이기 때문에 중요하다.

실행 컨텍스트의 구성 요소

  1. 변수 객체(Variable Environment)
    • 실행 컨텍스트 내에서 선언된 변수, 함수 선언, this 값을 저장하는 공간이며, 변수 선언 및 함수 선언을 위한 호이스팅이 이 단계에서 처리된다.
    • 초기화 시점에는 함수 선언만 포함되며, 변수는 undefined로 초기화된다.
  2. 스코프 체인(Scope Chain)
    • 현재 컨텍스트와 부모 컨텍스트를 참조할 수 있는 링크 체인이며, 변수를 검색할 때 가장 먼저 현재 컨텍스트에서 찾고, 없으면 상위 컨텍스트로 올라가며 찾는다.
  3. this 바인딩
    • 실행 컨텍스트에 연결된 this 값이며, 함수 호출 방식에 따라 달라진다.
      • 일반 함수 호출: 전역 객체 (window 또는 global)
      • 메소드 호출: 해당 객체
      • 새로운 호출: 새로 생성된 객체
      • 화살표 함수: 선언된 위치의 상위 컨텍스트에서 this를 상속

실행 컨텍스트의 종류

  1. 전역 실행 컨텍스트
    • 자바스크립트 코드가 처음 실행될 때 생성되며, 전역 객체와 연결된다.
    • 브라우저 환경에서는 window 객체가 전역 객체이다.
  2. 함수 실행 컨텍스트
    • 함수가 호출될 때마다 생성되며, 각 함수 실행 컨텍스트는 독립적으로 존재하고 함수 호출이 끝나면 메모리에서 사라진다.

실행 컨텍스트의 생성 과정

  1. 생성 단계
    • 변수 객체가 생성되고, 함수 선언은 메모리에 등록되며, 변수는 undefined로 초기화된다.
  2. 초기화 단계
    • 변수에 값이 할당되고, 함수의 코드가 준비되며, this 바인딩이 결정된다.
  3. 코드 실행 단계
    • 코드를 순차적으로 실행하며, 변수와 함수 호출을 처리한다.

실행 컨텍스트 스택

실행 컨텍스트는 스택 형태로 관리된다.

  1. 코드 실행이 시작되면 전역 실행 컨텍스트가 스택에 쌓임
  2. 함수가 호출될 때마다 새로운 실행 컨텍스트가 생성되어 스택의 최상단에 추가
  3. 함수 실행이 종료되면 해당 실행 컨텍스트는 스택에서 제거
728x90

'개발 TIL' 카테고리의 다른 글

Tanstack-query  (0) 2025.01.09
Reflow와 Repaint  (0) 2025.01.08
클로저(Closure)  (0) 2025.01.07
SOLID 원칙  (0) 2025.01.06
Typescript란?  (0) 2025.01.03