자바스크립트는 싱글 스레드 언어로, 이벤트 루프를 통해 비동기 작업을 처리합니다. 이벤트 루프는 콜 스택(Call Stack)과 태스크 큐(Task Queue)를 관리하면서 동작합니다.
콜스택: 함수가 호출될 때 이 스택에 쌓이며, 실행이 끝나면 스택에서 제거됩니다.
태스크 큐: 비동기 작업(ex. setTimeout, Promise)이 완료되면 콜백이 여기에 추가됩니다.
이벤트 루프(Enevt Loop) :
console.log('start');
setTimeout(() => {
console.log('setTimeout');
}, 0);
Promise.resolve().then(() => {
console.log('promise');
});
console.log('end');
출력순서 :
1. start -> 2. end -> 3. promise -> 4. setTimeout
동작과정 :