<分区>
所以我想出了这个例子,我无法理解为什么 0 秒的 setTimeout 是最后一个要执行的
function waitThreeSeconds() {
setTimeout(function() {
console.log("Finished Function");
}, 0);
}
function clickHandler() {
console.log("Clicked");
}
document.addEventListener('click', clickHandler);
waitThreeSeconds();
//waiting 5 seconds
var ms = 5000 + new Date().getTime();
while (new Date() < ms) {}
console.log('Finished Execution');
如果 setTimeouts 回调确实被添加到队列中,为什么每次我执行单击事件时它都比 setTimeout 的回调更早地添加到队列中。直到全局执行上下文('main')从堆栈中弹出