在javascript中,以下2个代码块之间有什么区别?

时间:2016-11-09 16:51:31

标签: javascript

以下代码仅打印5

for(var x=0; x<5; x++) {
    setTimeout(()=>console.log(x), 0)
}

以下代码打印0,1,2,3,4

for(let x=0; x<5; x++) {
    setTimeout(()=>console.log(x), 0)
}

setTimeout的表现方式是什么? setTimeout的第二个参数是0,所以它应该立即执行回调,这是第一个参数。如果第二个参数是一个正数,比如10,那么我理解回调被调用,x将达到它的最终值,而且我认为应该是4而不是5。

0 个答案:

没有答案