본문 바로가기
Frontend

실행 컨텍스트란

by 신인프로그래머 2024. 3. 4.

 

실행 컨텍스트

 

 

실행 컨텍스트(Execution Context)는 JavaScript 코드가 평가되고 실행되는 환경의 추상적인 개념이다

실행 컨텍스트는 코드가 실행되기 위해 필요한 모든 정보를 담고 있으며,

JavaScript 엔진이 스크립트를 실행할 때 코드의 실행 순서를 관리하고 변수 및 함수의 스코프를 결정하는 데 사용된다

 

JavaScript에서 실행 컨텍스트는 크게 세 가지 유형으로 분류된다

  1. 전역 실행 컨텍스트(Global Execution Context)
    1. 코드가 실행되기 시작할 때 JavaScript 엔진에 의해 생성되는 기본 컨텍스트
    2. 이는 전역 변수와 함수를 포함하며, 스크립트가 로드될 때 단 하나만 생성된다
  2. 함수 실행 컨텍스트(Function Execution Context)
    1. 함수가 호출될 때마다 생성된다
    2. 각 함수 호출마다 고유한 실행 컨텍스트가 생성되어 해당 함수 실행에 필요한 환경 정보(매개변수, 지역 변수 등)를 담는다
  3. 평가 실행 컨텍스트(Eval Execution Context)
    1. eval 함수가 호출될 때 생성된다
    2. eval은 자주 사용되지 않으며, 보안상의 이유로 사용을 권장하지 않는다

 

실행 컨텍스트의 구성 요소

각 실행 컨텍스트는 다음과 같은 주요 구성 요소를 포함한다

  1. 변수 객체(Variable Object)
    1. 현재 컨텍스트 내의 변수, 함수 선언, 함수 매개변수 등의 정보를 담고 있다
  2. 스코프 체인(Scope Chain)
    1. 현재 컨텍스트와 외부 컨텍스트의 변수에 접근할 수 있는 스코프의 리스트다
    2. 이를 통해 변수의 유효 범위와 스코프를 결정한다
  3. this 값
    1. 현재 컨텍스트에서 this 키워드의 값을 결정한다
    2. this의 값은 함수 호출 방식에 따라 달라진다 (예: 객체의 메서드로 호출될 때와 일반 함수로 호출될 때)

 

실행 과정

  1. 전역 실행 컨텍스트 생성
    1. 스크립트 로딩 시 전역 컨텍스트가 생성된다
    2. 전역 변수와 함수가 여기에 포함된다
  2. 함수 호출 시 함수 실행 컨텍스트 생성
    1. 함수가 호출될 때마다 새로운 함수 실행 컨텍스트가 스택에 푸시된다
    2. 이 컨텍스트는 함수의 로컬 변수, 매개변수, 그리고 해당 함수 실행에 필요한 다른 정보를 포함한다
  3. 실행 컨텍스트 스택(Execution Context Stack)
    1. 이 스택(콜 스택이라고도 함)은 코드 실행 중 생성된 모든 실행 컨텍스트를 추적한다
    2. JavaScript 엔진은 스택의 최상위에 있는 실행 컨텍스트를 사용하여 현재 실행 중인 코드를 관리한다
    3. 함수 실행이 완료되면 해당 함수의 실행 컨텍스트는 스택에서 제거(pop)된다

실행 컨텍스트는 JavaScript의 핵심적인 동작 원리 중 하나로,

코드의 실행 순서, 스코프 결정, 변수 생명 주기 관리 등을 이해하는 데 중요한 역할을 한다

'Frontend' 카테고리의 다른 글

자바스크립트 데이터 타입  (4) 2024.03.05
자바스크립트 형 변환  (0) 2024.03.05
렉시컬 환경이란  (0) 2024.03.04
함수 선언형과 함수 표현식의 차이  (0) 2024.03.04
var, let, const 차이  (0) 2024.03.04