실행컨텍스트란?
실행 컨텍스트 혹은 실행 맥락은 자바스크립트 코드가 실행되는 환경이다.
코드에서 참조하는 변수, 객체(함수), this 등에 대한 레퍼런스가 있다.
실행 컨텍스트는 전역에서 시작해 함수가 호출될 때 스택에 쌓이게 된다.
실행 컨텍스트 스택
let a = 10
function f1(){
let b = 20
function print(v){console.log(v)}
function f2(){
let c = 30
print(a + b+ c)
}
f2()
}
f1()
global 실행컨텍스트가 생성된다. 그 안에는 변수 a, 함수 f1, console(window 객체 밑에 있지만 전역에서 참조할 수 있는 변수이기 때문에 편의상 들어간다고 표현한다)이 들어가게 된다.
f1을 호출했을 때 f1-FEC 실행 컨텍스트가 실행된다. 그 안에는 변수 b, print, 함수 f2가 들어간다.
f2을 호출했을 때 f2 -FEC 실행 컨텍스가 실행된다. 그 안에는 변수 c가 들어간다. 이 때, 함수 print안에 a,b,c 안에 참조가 된다.
이때, 변수 a는 global 컨텍스트에서 찾을 수 있고 변수 b는 함수 f1의 내부 컨텍스트에서 찾을 수 있고, 변수 c 는 함수 f2의 내부 컨텍스트에서 찾을 수 있다.
마지막으로 print 함수가 호출했을 때 실행컨텍스트가 실행된다. 그 안에는 변수 v가 들어간다. console 객체는 전역에서 참조된다.
스택은 가장 마지막에 쌓였던 것이 제일 먼저 사라지게된다.
전역 실행 컨텍스트, 함수 실행 컨텍스트
자바 스크립트가 실행될 때 전역 실행 컨텍스트(Global Execution Context)가 만들어진다.
함수가 실행될 때 함수 실행 컨텍스트(Function Execution Context)가 만들어진다.
'Web > JavaScript' 카테고리의 다른 글
4.4 - 화살표 함수와 일반 함수의 this (0) | 2024.02.28 |
---|---|
4.3 - this (0) | 2024.02.28 |
4.1 - 자바스크립트 함수가 실행되는 과정 (1) | 2024.02.28 |
3.5 - 제이쿼리(jQuery) (0) | 2024.02.28 |
3.4 - 이벤트(Event) (1) | 2024.02.28 |