develop/script
콜 스택(call stack)
i'm suna
2023. 10. 19. 16:48
var a = 1;
function outer() {
function inner() {
console.log("3",a); //이 시점에서 변수a는 생성되어있지 않다.
var a = 3; //undefined
}
inner(); // inner함수 호출
console.log("2",a); //1
}
outer(); // outer 함수 호출
console.log("1",a); //1
실행 컨텍스트란 실행할 코드에 제공할 환경 정보들을 모아놓은 객체라고 했었죠. 그 객체. 즉, 동일 환경에 있는 코드를 실행할 때 필요한 환경 정보들을 모아 컨텍스트를 구성하고 이것을 위에서 설명드린 ‘스택’의 한 종류인 **콜스택**에 쌓아올립니다. 가장 위에 쌓여있는 컨텍스트와 관련된 코드를 실행하는 방법으로 코드의 환경 및 순서를 보장할 수 있어요.
- 컨텍스트의 구성
- 구성방법(여러가지가 있지만, 사실 우리는 함수만 생각하면 돼요 👍)
- 전역공간
- eval()함수
- 함수(우리가 흔히 실행컨텍스트를 구성하는 방법)
- 결국은 특정 실행 컨텍스트가 생성되는(또는 활성화되는) 시점이 콜 스택의 맨 위에 쌓이는(노출되는) 순간을 의미하구요. 곧, 현재 실행할 코드에 해당 실행 컨텍스트가 관여하게 되는 시점을 의미한다고 받아들여주시면 정확합니다! 👍👍
- 구성방법(여러가지가 있지만, 사실 우리는 함수만 생각하면 돼요 👍)