// 1번
let num = 1;
// 2번
setTimeout(() => {
num = 2;
}, 0);
// 3번
num = 3;
// 4번
console.log(num);
결과는 3이 출력될 것이다. setTimeout은 web API로 task queue 를 통하여 call stack에 쌓일텐데 // 3번 num이 3으로 바뀐 후 // 4번 콘솔이 출력된 다음 task queue에 저장된 setTimeout의 callback 가져와 stack에 가져오고 해당 callback을실행하기 때문에 출력되는 결과값은 3이다.