실행 컨텍스트

실행 컨텍스트(Execution Context)는 코드가 실행되는 환경 정보를 담은 객체입니다.

쉽게 말하면

JavaScript가 코드를 실행할 때 필요한 정보를 담아놓은 공간이에요.

담고 있는 정보

실행 컨텍스트 = {
    변수들 (Variable Environment)
    스코프 체인 (Scope Chain)
    this
}

언제 생성되나?

// 1. 전역 코드 실행 시 → 전역 실행 컨텍스트 생성
let a = 1;

// 2. 함수 호출 시 → 함수 실행 컨텍스트 생성
function foo() {
    let b = 2;
}
foo();  // 여기서 생성

콜 스택과 함께 동작

function first() {
    console.log("first");
    second();
}

function second() {
    console.log("second");
}

first();
[콜 스택]

3. second 컨텍스트  ← 쌓임
2. first 컨텍스트
1. 전역 컨텍스트

실행 끝나면 위에서부터 제거됨

비유

비유실행 컨텍스트
작업 공간책상 위에 필요한 서류 펼쳐놓은 것
게임현재 스테이지의 상태 정보

클로저와의 관계

function outer() {
    let x = 10;

    function inner() {
        console.log(x);
    }

    return inner;
}

const fn = outer();  // outer 컨텍스트는 사라짐
fn();  // 그런데 x에 접근 가능 → 클로저!

inner 함수가 outer의 실행 컨텍스트(환경)를 기억하고 있기 때문에 가능해요.

한줄 요약

실행 컨텍스트 = 코드 실행에 필요한 변수, 스코프, this 등의 정보를 담은 환경

CSLOG에서 보기