자바스크립트 코드를 읽고 실행시키는데 엔진이 해야할 일은 다음과 같다.
1. 변수, 객체등등 app의 데이터를 저장한다.
2. 코드에서 어떤일이 일어나는지 계속 추적한다.
다음의 일을 수행하기 위해 JS엔진은 콜스택과 매모리힙으로 구성되어있다.
콜스택은 원시타입의 데이터와 함수 호출이 저장되는 곳이다.
함수가 메모리에 할당되고 함수를 호출할 때마다 메모리에서 함수를 찾아서 실행한다. 함수의 호출 시 지역 변수와 매개 변수가 저장되는 되는 임시 메모리 영역이다.
memory which operates in first in last out mode
the call stack stores function and variables as your code execute at each entry state of the stack also called the stack frame
var text = '텍스트';
스택의 사이즈를 초과 했을 때 발생하는 오류로 재귀함수 호출하거나 중첩함수가 서로를 호출할 때 흔하게 발생할 수 있다. 브라우저가 crashing되는 걸 막기 위해 maximum size를 정해두었다. 이 사이즈를 초과하면 에러가 발생한다.