여러 함수들을 호출하는 해당 위치를 추적하는 인터프리터를 위한 많은 함수
현재 어떤 함수가 동작하고있는 지, 그 함수 내에서 어떤 함수가 동작하는 지, 다음에 어떤 함수가 호출되어야하는 지 등을 제어(실행할 함수를 호출하면 스택에 무언가를 푸시하고 함수에서 돌아 오면 스택의 맨 위에서 팝)
LIFO (Last In, First Out) 원칙을 사용하여 함수 호출 (호출)을 임시로 저장하고 관리하는 데이터 구조
fucntion three(){
console.log("i love js");
}
fucntion two(){
three();
}
fucntion one(){
two()
}
fucntion zero(){
one()
}
zero();
여기서 Call Stack은 아래와 같다
three
two
one
zero
💡 오류가 발생하면 실패한 위치가 위로부터 아래로 내려간다.
function foo() { dsad
throw new Error("!!");
}
function bar() {
foo();
}
function zoo() {
bar();
}
zoo();
Uncaught Error: !!
foo
bar
zoo