출처: 이웅모 《모던 자바스크립트 Deep Dive》 42장 · 본인 말로 정리
JS 엔진은 싱글 스레드 + 콜 스택으로 한 번에 하나만 실행한다. 오래 걸리는 일을 동기적으로 붙잡으면 UI가 멈추므로, 브라우저는 비동기 콜백을 태스크 큐에 넣고 이벤트 루프가 비울 때 실행한다.
console.log('1');
setTimeout(() => console.log('2'), 0);
console.log('3');
// 출력: 1 → 3 → 2
0ms여도 콜백은 당장 콜 스택에 못 올라가고 큐를 탄다.
타이머·DOM 이벤트·XHR 로드 등이 이 경로와 연결된다. (프로미스 microtask는 45장)