본문 바로가기

🔥 🔥

실행 컨텍스트 (Execution Context)

반응형

Execution Context, 실행 컨텍스트란?

- 자바스크립트 코드가 실행되는 환경을 의미한다.

- 세 가지 타입의 실행 컨텍스트가 있다. (마지막 타입의 eval은 지금 공부하지 않는다.)

 

1. Global Execution Context

- 자바스크립트 엔진이 실행될 때(코드가 없더라도) Global Execution Context가 생성된다. 

- 생성과정에서 전역 객체인 Window Obiect를 생성하고 this가 Window객체를 가리킨다.

 

2. Function Execution context

- 함수가 호출될 때마다  함수에 대한 Execution context가 생성된다.

 

Call stack

- 코드가 실행되면서 생성되는 Execution context을 저장하는 자료구조이다.

 

=> 엔진이 처음 script를 실행할 때, Global Execution Context를 생성하고 이를 call  stack에 push 한다. 그 후 엔진이 함수를 호출할 때마다 함수를 위한 Execution Context를 생성하고 이를 callstack에 push 한다.

 


 

+ Global Execution Context의 생성단계에서

1. Window Obiect, this객체 생성

2. 함수와 변수를 사용할 메모리  준비

3. 변수에는 undefined를 할당하고 (var 변수 경우만) 함수 선언문은 실제로 메모리에 할당한다.

 

위와 같은 Global Execution Context의 생성단계때문에 var변수와 함수선언문에서 흔히 우리가 아는 호이스팅이 발생하게 되는 것이다.

 

 

 

Call Stack과 Execution Context 를 알아보자

이 글에서 Call Stack과 Execution Context에 대해 다룹니다. 각 용어는 한국어로 해석하지 않고 영어 그대로 표기합니다.

medium.com

 

'🔥 🔥' 카테고리의 다른 글

배열에서 최솟값 찾기 | JS  (0) 2021.03.23
Function Expressions과 Function Declarations  (0) 2021.02.09
모듈 번들러, 트랜스 파일러  (0) 2020.12.18
Call Stack  (0) 2020.12.17
CORS란?  (0) 2020.12.15