在Javascript中使用settimeout

时间:2015-02-10 15:53:29

标签: javascript settimeout

以下程序的输出是什么?为什么?

setTimeout(function() {
     console.log("hi");
}, 0);

 //Do some calculation for 3-4 secs or more over here
console.log("Bye");

我无法模拟,因为我不知道如何计算3-4秒。此外,如果值是Bye而不是Hi,为什么会这样?

1 个答案:

答案 0 :(得分:1)

输出是 1.Bye 2.hi

为什么呢?即使超时为0毫秒,该函数也会通​​过setTimeout提供给callstack,但在此之前,call.ack(“Bye”)已经存在于callstack的末尾。这就是它早先执行的原因。