老师有个问题问下
var arr=[];
for(var i=0;i<=5;i++){
arr.push(function(i){
alert(i)
}(i));
}
console.log(arr)
老师,如果这样写i也是局部变量了吧。为什么这样写arr是undefined呢??
40
收起
正在回答
2回答
同学你好,是的,匿名函数中使用的i是局部变量。arr保存的元素为undefined,是因为push直接添加了一个匿名函数,这个匿名函数没有设置返回值,所以默认返回undefined。如下设置返回值即可:

祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星