for循环输出值,学了js几年居然不知道
2017-05-27 本文已影响23人
秋秋秋web
var a = [];
for(var i =0; i <10; i++) {
a[i] =function(){
return console.log(i)
};
}
a[1]()
上面代码输出结果为10;惊呆!不应该是0~10?
抛开方法,对循环进行输出,居然直接等于10
![](https://img.haomeiwen.com/i1239895/1e015dee472f0b35.png)
解释一下:里面每个a[i]都是一个function,只有调用到才会执行,这里循环相当于只是声明而没有执行,只有最后调用了a函数才执行,而此时i是10