setimeout在Javascript中的使用

setimeout在Javascript中的使用,javascript,settimeout,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和than Hi,为什么会这样?输出为 1.再见 2.你好 为什么??即使超时为0毫秒,函数也会通过setTimeout提供给调用堆栈,但在

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

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

 //Do some calculation for 3-4 secs or more over here
console.log("Bye");
我无法模拟,因为我不确定如何进行3-4秒的计算。另外,如果值为Bye和than Hi,为什么会这样?

输出为 1.再见 2.你好


为什么??即使超时为0毫秒,函数也会通过setTimeout提供给调用堆栈,但在此之前,调用堆栈的末尾已经有console.log(“Bye”)。这就是为什么它会在早些时候执行。

你想用代码实现什么?@meza我在采访中问过它。面试官写了0秒作为延迟。@AeroX很抱歉,我没有在您提供的链接中找到延迟为0毫秒的setTimeout。你能在上面放几盏灯吗。Thanksher是如何模拟4秒的计算:
var start=Date.now();while(Date.now()-start<4000)