개발 일기

2024-10-25(실행컨텍스트, 이벤트루프, 클로저)

민ズl 2024. 10. 25. 17:27

실행 컨텍스트

  • 자바스크립트 코드를 실행하는데 필요한 환경을 제공하는 객체
  • 자바스크립트 엔진이 코드를 평가 하고 실행 하는 데 필요한 정보를 담고 있는 공간

실행 단계

  1. 평가 단계(컴파일 단계): 레코드 수집(호이스팅) 및 상위 스코프(Outer) 결정
    → Record: 선언된 변수, 함수, 클래스 등이 기록되는 공간. 식별자와 그 값이 저장됩니다.
    → Outer : 상위 스코프를 가리키고 있는 공간. 스코프체인을 형성하는 역할을 합니다
  2. 실행 단계(런타임 단계): 함수 실행 시 실행 컨텍스트를 콜 스택에 푸쉬하고 변수에 값 할당

이벤트 루프

  • 비동기 작업을 관리하고 순서대로 프로그램의 실행 흐름을 제어하기 위한 장치
  • 콜 스택과 큐를 관리하면서 순차적인 코드 실행을 위한 비동기 처리 매커니즘

fetch.then(task Queue) : 웹API

프로미스.then(micro Task Queue) : 자바스크립트

Micro Task Queue > task Queue (우선순위)


클로저

  • 외부 함수의 실행 컨텍스트가 사라진 이후에도 내부 함수가 여전히 외부 함수의 변수에 접근할 수 있는 상태
  • 외부 함수의 변수를 참조하는 내부 함수