我正在尝试验证以下代码的发生顺序。

function square(n) {
    return n * n;
}

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

console.log(square(2));



setTimeout()从堆栈中弹出,然后anonymous()进入队列。
当setTimeout()在堆栈上时,anonymous()进入队列,然后setTimeout()从堆栈中弹出。


以上哪个是正确的顺序?我在link上尝试过,我注意到首先弹出setTimeout(),然后将匿名()放入队列,但我只需要验证一下即可。

最佳答案

首先是答案是正确的。弹出setTimeout函数,然后将匿名的内部匿名函数(作为setTimeout的第一个参数编写)发送到队列,并保留在那里,直到所有其他代码运行为止。

关于javascript - JavaScript堆栈,队列和事件循环?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47602315/

10-16 20:57