var a = [];
for(var i =0; i <10; i++) {
a[i] =function(){
return console.log(i)
};
}
a[1]()
上面代码输出结果为10;惊呆!不应该是0~10?
抛开方法,对循环进行输出,居然直接等于10
解释一下:里面每个a[i]都是一个function,只有调用到才会执行,这里循环相当于只是声明而没有执行,只有最后调用了a函数才执行,而此时i是10
var a = [];
for(var i =0; i <10; i++) {
a[i] =function(){
return console.log(i)
};
}
a[1]()
上面代码输出结果为10;惊呆!不应该是0~10?
抛开方法,对循环进行输出,居然直接等于10
解释一下:里面每个a[i]都是一个function,只有调用到才会执行,这里循环相当于只是声明而没有执行,只有最后调用了a函数才执行,而此时i是10
本文标题:for循环输出值,学了js几年居然不知道
本文链接:https://www.haomeiwen.com/subject/qmdqfxtx.html
网友评论