簡體   English   中英

var,在javascript中循環,無法理解輸出,錯誤

[英]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 ,數組的元素分配將是024 元素1被跳過。

第一分配發生在i是0。然后, i被的第三子句中遞增到1在循環的結束,然后再次以2 for循環頭。 因此,下一個分配是針對元素2的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM