자바스크립트 엔진은 자바스크립트를 실행할 때 원시타입참조타입을 저장하는 메모리 구조를 가진다.

콜스택

동작 순서

  1. GEC (Global Execution Context)가 생성된다.
    1. 원시 값은 콜 스택에 올라간다.
    2. 참조 값은 힙에 저장된다.
  2. 함수를 실행하면 FEC(Function Execution Context)가 생성된다.
    1. 원시 값은 콜 스택에 올라간다.
    2. 참조 값은 힙에 저장된다.
  3. 함수가 리턴되고 더 이상 참조되는 곳이 없으면 FEC는 콜스택에서 제거된다.
  4. 콜스택에 올라온 FEC 해당하는 코드들이 전부 실행 한다.
  5. 남은 FEC가 없으면 GEC가 콜스택에서 제거된다.
  6. 힙의 객체를 참조하는 스택의 값이 사라진다.
  7. 가비지 컬렉터의 의해 제거된다.

https://speakerdeck.com/deepu105/v8-memory-usage-stack-and-heap?slide=10