2016-10-21 82 views
2
for (var a=0; a<5; a++) 
{ 
    setTimeout(function(){ 
     alert(a); 
    }, 0); 
} 

上面的代码在javascript中提示我输出5,5次infact我的期望是输出像0,1,2,3,4而是它显示了5,5,5,5,5的输出。为什么这样?下面的代码在javascript中输出的原因是什么

除此之外,请在javascript中解释我的上下文和范围的概念,我总是无法通过从网上阅读的许多示例来理解它。

+0

为什么你使用setTimeout函数? –

+0

我只是刷我的js概念,但事实上我登陆这样做,现在麻烦理解它:) – HarshSharma

+0

我知道这个问题已被问过很多次。您是否搜索过答案? –

回答

1

里面setTimeout(),您alert()所以它很可能alert()得到执行之前for循环已经结束异步调用。

相关问题