以下程序的输出是什么?为什么?
setTimeout(function() {
console.log("hi");
}, 0);
//Do some calculation for 3-4 secs or more over here
console.log("Bye");
我无法模拟,因为我不知道如何计算3-4秒。此外,如果值是Bye而不是Hi,为什么会这样?
答案 0 :(得分:1)
输出是 1.Bye 2.hi
为什么呢?即使超时为0毫秒,该函数也会通过setTimeout提供给callstack,但在此之前,call.ack(“Bye”)已经存在于callstack的末尾。这就是它早先执行的原因。