这两个代码看起来相同但行为不同。我知道javascript与事件循环一起工作,它将事件添加到队列中然后逐个执行。但在这里他们的工作方式不同
setTimeout(a,0)
alert(1)
alert(2)
function a(){
alert(0)
}
// 1 // 0 // 2
setTimeout(function(){
alert(0)
},0)
alert(1)
alert(2)
// 1 // 2 // 0
我注意到setTimeout
与命名函数的工作方式不同。如果javascript优先使用名称功能,那么为什么它不会第一次发出警告