JS 딥 다이브) day 5

Clear·2023년 7월 10일
0

Daily Posting

목록 보기
23/27

코드가 실행되기 위해서는?

  1. 선언에 의해 생성된 모든 식별자를 스코프를 구분하여 등록하고 상태 변화(식별자에 바인딩된 값을 변화)를 지속적으로 관리할 수 있어야 한다.
  2. 스코프는 중첩 관계에 의해 스코프 체인을 형성해야 한다. 즉, 스코프 체인을 통해 상위 스코프로 이동하며 식별자를 검색할 수 있어야 한다.
  3. 현재 실행 중인 코드의 실행 순서를 변경(함수 호출에 의한 실행 순서 변경)할 수 있어야 하며, 다시 되돌아갈 수도 있어야 한다.

실행 컨텍스트

  • 이 모든 것을 관리하는 것이 실행 컨텍스트이다.
  • 실행 컨텍스트는 식별자를 등록하고 관리하는 스코프와 코드 실행 순서 관리를 구현한 내부 매커니즘으로, 모든 코드는 실행 컨텍스트를 통해 실행되고 관리된다.

렉시컬 환경과 실행 컨텍스트 스택

  • 식별자와 스코프는 렉시컬 환경으로, 코드 실행 순서는 실행 컨텍스트 스택으로 관리된다.
  • 실행 컨텍스트 스택은 다른 말로 콜 스택이라고 한다.

렉시컬 환경

  • 식별자와 식별자에 바인딩된 값. 그리고 상위 스코프에 대한 참조(외부 렉시컬 환경에 대한 참조)를 기록하는 자료구조이다.

0개의 댓글