본문 바로가기
웹/JavaScript

실행 컨텍스트 execution context

by void pattern 2022. 12. 7.

실행컨텍스트란?

👉🏻 실행할 코드에 제공할 환경 정보들을 모아놓은 객체이다.

 

동일한 환경에 있는 코드들을 실행할 때 필요한 환경 정보들을 모아 컨텍스트를 구성하고 이를 콜 스택에 쌓아올렸다가 가장 위에 쌓여있는 컨텍스트와 관련 있는 코드들을 실행하는 식으로 전체 코드의 환경과 순서를 보장합니다.

여기서 '동일한 환경', 즉 하나의 실행 컨텍스트를 구성할 수 있는 방법으로 전역공간, eval() 함수, 함수 등이 있습니다. 자동으로 생성되는 전역공간과 악마로 취급받는 eval을 제외하면

우리가 흔히 실행컨텍스트를 구성하는 방법은 함수를 실행하는 것뿐입니다.

 

  • Stack : FILO(First In Last Out), LIFO(Last In First Out)
  • Queue : FIFO(First In First Out), LILO(Last In Last Out)

 

 

실행컨텍스트와 콜스택 예제

//(1)
var a = 1;
function outer() {
	function inner() {
		console.log(a); //undefined
		var a = 3;
	}
	inner(); //(2)
	console.log(a); //1
}
outer(); //(3)
console.log(a); //1

 

댓글