기술 면접 정리/자바스크립트

이벤트 루프

테오구 2022. 4. 15. 18:25
728x90

자바스크립트를 사용가능한 런타임 환경이라면 항상 자바스크립트엔진이 탑재되어있습니다. 그래서 소스코드를 자바스크립트 엔진이 하나하나 번역하여 실행하는 것입니다. 소스 코드에서 동적으로 코드를 생성하는 경우에 Memory Heap에 형성이 됩니다. 그리고 콜스택이라는 것이 있는 콜스택은 함수의 실행 순서를 기억합니다. 여기서 자바스크립트는 단일 스레드이기 때문에 하나의 싱글 컨텍스트 스택(한번에 하나의 일만 처리)할 수 있습니다. 즉 자바스크립트는 기본적으로는 동기적으로 진행이 됩니다. 

[JS Runtime 동작 순서]
1) 함수는 Call Stack LIFO순서로 쌓여서 실행
2-1) 함수에 콜백함수가 있을 때 JS내부에서 처리 가능하면 Call Stack에 쌓음
2-2) JS내부에서 처리 안되면(비동기 API) Web API에게 위임
3-2) Web API는 비동기 API 실행 후 콜백함수를 Callback Queue에 삽입
4-2) Event Loop Call Stack이 비었을 때 Callback Queue에서
         콜백함수 빼서 Call Stack에 넣어준다.
5) Call Stack에 올라간 콜백 함수는 pop되어 실행

728x90

'기술 면접 정리 > 자바스크립트' 카테고리의 다른 글

4장 콜백함수 정리  (0) 2022.05.04
구조분해 할당  (0) 2022.04.21
자바스크립트 엔진  (0) 2022.04.15
preventDefault(); 와 stopPropagation(); 차이  (0) 2022.04.12
접근 제어자  (0) 2022.04.03