这段代码有点理解不了

这段代码有点理解不了

老师 我想请教下为什么这段代码弹出的是10呢 不是i<10就不循环了么

var arr=[];
for(var i=0;i<10;i++){
arr[i]=function(){
alert(i)
}
}
arr[8]();


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

根据代码分析,arr[8](); 是在循环外,也就是说循环执行到10时,不循环了,但是i=10 , 所以在调用arr[8]();时弹出的是10。只要arr[n]()中n的值不大于10,最后都会弹出10。


风硕依源 2017-03-30 17:08:45

使用let代替var就可以达到你想要的效果

  • 提问者 慕雪0323865 #1
    恩 我就是学ES6的时候 看到了这段代码 有点理解不了
    2017-03-30 17:15:31
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
HTML5与CSS3实现动态网页 2018
  • 参与学习       1887    人
  • 提交作业       4643    份
  • 解答问题       5760    个

有HTML和CSS基础,却不知道如何进阶?本路径带你通过系统学习,完成从“会做网页”到“做出好的动态网页”的蜕变,迈出成为前端工程师的第一步。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师