[英]var, loop in javascript, cannot understand the output, error
var arr = [];
for(var i=0; i<5; i++){
arr[i] = function(){
return i;
};
}
document.write(arr[1]());
如我所料,输出为5
但是当我在两次返回之间添加i ++时; 和for循环的结尾,如下面的代码所示,
var arr = [];
for(var i=0; i<5; i++){
arr[i] = function(){
return i;
};
i++;
}
document.write(arr[1]());
屏幕显示错误,未捕获的TypeError:arr [1]不是函数
我希望输出应该是6,但是我不明白为什么。
因为你有两个增量为i
,数组的元素分配将是0
, 2
和4
。 元素1
被跳过。
第一分配发生在i
是0。然后, i
被的第三子句中递增到1在循环的结束,然后再次以2 for
循环头。 因此,下一个分配是针对元素2的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.