🔎 실행컨텍스트
scope, hoisting, this, function, closure 등의 동작원리를 담고 있는 자바스크립트의 핵심원리
실행 컨텍스트는 실행 가능한 코드가 실행되기 위해 필요한 환경
코드가 실행되는 위치를 설명한다는 뜻의 Execution Context
1–1 생성단계
👉argument object 생성(★글로벌 실행컨텍스트와의 차이점, global object 아님!)
👉this 변수 object 생성
👉변수와 함수를 위한 메모리 공간 확보
👉변수 선언 부분에 undefined로 초기화, 선언식 함수를 메모리 공간에 올림
➡️ 함수 실행컨텍스트는 함수가 호출되면 실행 스택에 쌓였다가, 실행을 마치면 콜스택에서 제거된다.
함수호출 ➡ 새로운 함수 실행 컨텍스트가 콜스택에 쌓임 ➡ 생성단계 ➡ 실행단계 ➡ 콜스택에서 제거
🔎 콜스택
1 ) 엔진이 처음 script를 실행할 때, Global Execution Context를 생성하고 이를 Call Stack에 push한다.
2 ) 엔진이 함수를 호출할 때 마다 함수를 위한 Execution Context를 생성하고 이를 Call Stack에 push 한다.
3 ) 자바스크립트 엔진은 Call Stack의 Top에 위치한 함수를 실행하며 함수가 종료되면 stack에서 제거(pop)하고 제어를 다음 Top에 위치한 함수로 이동한다.
1줄 요약 : 프로그램이 함수 호출을 추적할때 사용한다.