[검색] 공부하기/JavaScript

[ JS 실행 컨텍스트 ]

Ben의 프로그램 2024. 10. 7. 20:35
728x90
// ======================== ======================== ========================
오늘은 JS 의 실행 컨텍스트에 대해서 살펴보고자 합니다. 
======================== ======================== =========================== //

 

JS 실행 컨텍스트
JS 의 실행 컨텍스트의 대분류는 2가지로 나뉩니다. 

1. GEC (Global Execution Context) 
- 브라우저환경에서는 Window 
- Node.js 환경에서는 Global 

2. FEC (Function Execution Context) 
- When a function is invoked. FEC is created

 

EC 구성요소
각 EC 안에는 다음과 같은 구성요소가 들어 있다. 

VE (Variable Environment)
- 변수, functions, parameters 등 모든 것
- keep track current value
- hoisting 발생 

LE (Lexical Environment)
- track of outer VE 

 

EC 생성 단계
GEC 이든 FEC 이든 2가지 단계로 진행된다.

1. Hoisting

2. this 설정, VE & LE 생성 

 

JS 의 Call Stack
JS의 call stack 은 모든 EC 들을 Tracking 합니다. 
- when a function is called, its execution context(ec) is pushed onto the stack
- when the function finishes, itx execution context will be cleard.
- GEC 는 stack 의 제일 밑 부분에서 프로그램이 종료될 때까지 남아 있는다. 

 

실제 JS 프로그램 실행 순서
프로그램의 실행

GEC  생성

GEC 의 구성 생성 (VE, LE)

FEC 생성 

FEC 의 구성 생성 (VE, LE)