正在回答 回答被采纳积分+1
1回答
imooc_慕慕
2023-01-12 09:50:07
同学你好,分析如下:
当执行for循环执行过程中,会往arr中,追加函数。当push的时候会向空数组中追加函数。
因此for循环结束之后,arr中有5个function () { alert(i) },arr的形式如下:
当调用的时候即会寻找arr数组中对应的函数,arr[2]();
而数组中的函数中并没有变量i就会向函数外层找,然后找到全局的i在for循环中使用var声明的变量i即为全局变量i,for循环结束,全局的变量i是5:
因为在for循环中最后的i会执行i++这一步,然后再执行序号2,如果不满足则退出循环体,因此全局的i最后是5
同学可以回顾一下课程,参考地址https://class.imooc.com/lesson/2120#mid=50321
因此每当执行一个数组中的这个函数结果就会是5。
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星