개발 일기
2024-10-25(실행컨텍스트, 이벤트루프, 클로저)
민ズl
2024. 10. 25. 17:27
실행 컨텍스트
- 자바스크립트 코드를 실행하는데 필요한 환경을 제공하는 객체
- 자바스크립트 엔진이 코드를 평가 하고 실행 하는 데 필요한 정보를 담고 있는 공간
실행 단계
- 평가 단계(컴파일 단계): 레코드 수집(호이스팅) 및 상위 스코프(Outer) 결정
→ Record: 선언된 변수, 함수, 클래스 등이 기록되는 공간. 식별자와 그 값이 저장됩니다.
→ Outer : 상위 스코프를 가리키고 있는 공간. 스코프체인을 형성하는 역할을 합니다 - 실행 단계(런타임 단계): 함수 실행 시 실행 컨텍스트를 콜 스택에 푸쉬하고 변수에 값 할당
이벤트 루프
- 비동기 작업을 관리하고 순서대로 프로그램의 실행 흐름을 제어하기 위한 장치
- 콜 스택과 큐를 관리하면서 순차적인 코드 실행을 위한 비동기 처리 매커니즘
fetch.then(task Queue) : 웹API
프로미스.then(micro Task Queue) : 자바스크립트
Micro Task Queue > task Queue (우선순위)
클로저
- 외부 함수의 실행 컨텍스트가 사라진 이후에도 내부 함수가 여전히 외부 함수의 변수에 접근할 수 있는 상태
- 외부 함수의 변수를 참조하는 내부 함수