[英]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.