February 28, 2023
자바스크립트 엔진이 프로그램을 해석하고 실행하기 위한,
함수나 변수 및 그것들의 유효 범위 등의 정보가 기록된 실행 환경을 의미한다.
기본적으로 프로그램이 실행되면 Global 실행 컨텍스트가 생성되어 스택의 맨 아래에 깔리고
이후에 함수가 호출될 때마다 새로운 실행 컨텍스트가 생성되어 스택의 위에 차곡차곡 쌓이는 방식으로 저장된다.
자바스크립트 엔진은 프로그램을 해석하면서 어떤 자원에 대한 접근이 필요할 때마다
스택의 상위에 있는 실행 컨텍스트를 우선순위로 하여 아래로 내려가며 자원을 찾는다.
자원에 접근할 수 있는 범위를 의미한다.
스코프의 범위를 정하는 기준에 따라 두 가지로 분류할 수 있다.
자원을 어디에서 선언하냐에 따라 두 가지로 분류할 수 있다.
스코프의 선언이 언제 이루어지냐에 따라 두 가지로 분류할 수 있다.
// Global Execution Context.
// v0은 글로벌 스코프에서 접근 가능하다.
// l0은 로컬 스코프에서 접근 가능하다.
var v0 = "v0";
let l0 = "l0";
function f1() {
// f1 Execution Context.
// v1, l1는 함수 단위 로컬 스코프에서 접근 가능하다.
var v1 = "v1";
let l1 = "l1";
{
// v2는 var로 선언되었기 때문에 함수 단위 로컬 스코프에서 접근 가능하다.
// l2는 블럭 단위 로컬 스코프에서 접근 가능하다.
var v2 = "v2";
let l2 = "l2";
}
}
f1();
https://www.freecodecamp.org/news/execution-context-how-javascript-works-behind-the-scenes/