用 let 为什么是2
let arr = [];
for (let i = 0; i < 5; i++) {
arr.push(function () {
console.log(i);
});
}
arr[2](); //2
31
收起
正在回答 回答被采纳积分+1
1回答
卡布琦诺
2022-05-15 16:42:42
同学你好,for循环每循环一次,向arr数组中添加一个数,过程如下:
① i = 0时,符合i < 5条件,向arr中添加数字0
②上一步执行i++后,此时,i=1,符合i < 5条件,向arr中添加数字1
③上一步执行i++后,此时,i=2,符合i < 5条件,向arr中添加数字2
④上一步执行i++后,此时,i=3,符合i < 5条件,向arr中添加数字3
⑤上一步执行i++后,此时,i=4,符合i < 5条件,向arr中添加数字4
⑥上一步执行i++后,此时,i=5,不符合i < 5条件,结束循环
因此,当for循环结束后,arr中包含数字0,1,2,3,4。即此时的arr数组是arr[0,1,2,3,4],arr[2]();返回值为2是因为arr数组下标为2的数是2。
祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星