我正在尝试验证以下代码的发生顺序。
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/