실행 컨텍스트란?

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

브라우저나 노드에서 js를 실행시키는 순간 글로벌 실행 컨텍스트가 생성된다.

<aside> 💡 유명한 자바스크립트 엔진 2가지 : 구글 V8, SpiderMonkey

</aside>

var num = 2;

function pow(num){
	return num * num;
}

자바스크립트 엔진은 위 코드를 어떻게 해석할까?

  1. top to bottom으로 훑으면서 변수와 함수가 있다는걸 알아챈다.
  2. 이 변수와 함수를 메모리에 올린다. (함수를 호출하는게 아니다.) → 변수는 이 과정에서 이미 초기화 된다.

javascript 코드를 실행시키면 글로벌 메모리와 글로벌 실행 컨텍스트가 생성된다.

글로벌 메모리에는 다음과 같이 변수나 함수 선언이 들어간다.

함수를 호출하게 되면 내부에선 어떤일이 일어날까?

var num = 2;

function pow(num){
	return num * num;
}

var res = pow(num);

함수를 호출하는 순간 콜스택에 그 함수에 대한 정보가 쌓인다.