-1
for(var i=0; i<5; i++) {
    setTimeout(function() {
        console.info(i);
    }, 0);
}
console.info(i);  // 这里为什么输出的是5

这个问题已被关闭,原因:问题已解决 - 问题已解决,且对他人无借鉴意义

查看全部 9 个回答

0

setTimeout是一个队列函数,它会等到同一作用域下的其它函数、语句执行完了再执行。所以定时器开启的时候,for循环已经结束了,i一直都是5。

推荐答案

3

已采纳

http://www.qdfuns.com/notes/1... 这有详细的解释