본문 바로가기

Web

[Web] Call Stack - 자바스크립트의 콜 스택

728x90
반응형

Stack

LIFO(Last In First Out)

제일 나중에 들어온 것이 제일 먼저 나가는 자료구조

 

Call Stack

자바스크립트 안에서 실행되는 모든 함수의 호출을 기록하고 추적한다.

모든 process와 thread안에는 각각 저마다의 Call Stack이 들어있다.

일을 수행할 때 어디서 왔고, 어디로 다시 가야 하는지에 대한 정보를 기억해야 하기 때문이다.

 

 

1. Javascript가 실행되면 Global Execution Context(anonymous)을 생성 Call Stack에 추가.
main 함수를 제일 먼저 호출한다.

 

2. main 함수를 Call Stack에 추가하고, main 함수 내부에 있는 first 함수를 호출한다.

 

3. first 함수를 Call Stack에 추가하고, first 함수 내부에 있는 second 함수를 호출한다.

 

4. second 함수를 Call Stack에 추가하고, secone 함수 내부에 있는 console.log('Hi')를 실행한다.

 

5. console창에 Hi를 출력하고, second 함수는 리턴(종료) 한다.

 

6. Call Stack에서 second 함수를 삭제하고, first 함수를 종료한다.

 

7. Call Stack에서 first 함수를 삭제하고, main 함수를 종료한다.

 

8. Call Stack에서 main 함수를 삭제한다.

 

9. 모든 코드 실행을 마치고 Call Stack에서 Global Execution Context(anonymous)를 삭제하고,
메모리를 비운다.

 

 

728x90
반응형