몽땅뚝딱 개발자

[Javascript] 호출 스택(call stack) 본문

Development/Javascript

[Javascript] 호출 스택(call stack)

레오나르도 다빈츠 2021. 7. 7. 21:07

출처

 

자바스크립트 중고급: 근본 핵심 이해 - 인프런 | 강의

4개 강좌로 구성된 자바스크립트 바이블 강좌의 2번째 강좌입니다. 자바스크립트 엔진 이해를 통해 자바스크립트에 최적화된 프로그램을 개발할 수 있습니다. 자신 있게 시스템을 설계할 수 있

www.inflearn.com

 

 


 

🚀 호출 스택(call stack)

 

◽ call stack이란?

실행 콘텍스트의 논리적 구조이다.

 

 

◽ first in last out 순서 (=계단형 구조, FILO)

 

함수가 호출되면 스택의 가장 위에 실행 콘텍스트가 위치하게 된다.

function one() {
    two();
};
function two() {
    three();
};
function three() {};
one();

예를 들어, 위의 코드에서 one()이 호출되면 one()의 실행 콘텍스트가 스택의 가장 위에 놓인다.

여기서 one()에서 호출하는 two()가 실행되면 two()가 가장 위에 놓인다.

따라서 가장 위에 있는 것이 실행하고 있는 함수이며, 실행 콘텍스트라 할 수 있다.

three()까지 스택에 쌓인 후 three()가 실행되고 함수가 종료되면 스택에서 빠져나온다.

이 때, 가장 아래에는 글로벌 오브젝트인 one() 함수가 위치하고 있다.

 

 

◽ 이런 구조가 가능한 이유

자바스크립트는 싱글 스레드이기 때문이다.

 

 

◽ call stack 구조를 보는 방법

디버거를 건 후, 개발자 도구의 Sources 탭 오른쪽에서 [call stack]탭을 확인한다.

 

 

 

Comments