for (var a=0; a<5; a++)
{
setTimeout(function(){
alert(a);
}, 0);
}
javascript中的上述代码提示我输出5,5次实际上我的期望输出类似于0,1,2,3,4,但它显示了5,5,5的输出,5,5。为什么会这样?
除此之外,请在javascript中向我解释上下文和范围的概念,我总是通过从网上阅读的许多例子来理解它。
答案 0 :(得分:1)
在setTimeout()
内,您的alert()
被异步调用,因此for
循环很可能在alert()
执行之前完成。