jwk*_*koo 1 javascript loops for-loop
var arr = [];
for(var i=0; i<5; i++){
arr[i] = function(){
return i;
};
}
document.write(arr[1]());
Run Code Online (Sandbox Code Playgroud)
输出是5,正如我预期的那样
但是当我在返回i之间添加i ++时; 和for循环的结束,如下面的代码,
var arr = [];
for(var i=0; i<5; i++){
arr[i] = function(){
return i;
};
i++;
}
document.write(arr[1]());
Run Code Online (Sandbox Code Playgroud)
屏幕显示错误,Uncaught TypeError:arr [1]不是函数
我预计输出应该是6,但我不明白为什么.
因为你必须有2个递增i,数组的元素分配将是0,2和4.元素1被跳过.
第一个赋值在i0 时发生.然后,i在循环结束时递增为1,然后在for循环头的第三个子句中再次递增到2 .所以下一个任务是针对元素2.