Javascript 为什么将某些函数的回调放在事件队列中?

Javascript 为什么将某些函数的回调放在事件队列中?,javascript,asynchronous,callback,Javascript,Asynchronous,Callback,我不熟悉Javascript和异步编程,有几件事让我困惑 考虑以下代码 函数乐趣(回调){ console.log('a'); setTimeout(回调,0); console.log('c'); } fun(()=>{console.log('b');})您几乎都知道,如果我们像这样使用setTimeout示例:setTimeout(func,0),这将确保func被尽快调度。但计时器仅在当前代码操作完成时执行此操作。因此,计时器在当前作业“之后”立即开始运行。换句话说,“异步”。例如,下

我不熟悉Javascript和异步编程,有几件事让我困惑

考虑以下代码

函数乐趣(回调){
console.log('a');
setTimeout(回调,0);
console.log('c');
}

fun(()=>{console.log('b');})您几乎都知道,如果我们像这样使用setTimeout示例:
setTimeout(func,0)
,这将确保func被尽快调度。但计时器仅在当前代码操作完成时执行此操作。因此,计时器在当前作业“之后”立即开始运行。换句话说,“异步”。例如,下面的代码打印“Hello”,后跟“World”

在第一行中,它的意思是“在0毫秒后对呼叫进行排队”。但是计时器在运行当前代码后会处理“先检查队列”。由此可知,“Hello”写在“World”之后。我希望我能解释一下。快乐编码

setTimeout(() => alert("World"), 0);
alert("Hello");