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

解释一下:里面每个a[i]都是一个function,只有调用到才会执行,这里循环相当于只是声明而没有执行,只有最后调用了a函数才执行,而此时i是10

上一篇 下一篇

猜你喜欢

热点阅读