var,循环在javascript中,无法理解输出,错误

时间:2017-06-29 12:35:10

标签: javascript loops for-loop

    var arr = [];
    for(var i=0; i<5; i++){
        arr[i] = function(){
            return i;
        };
    }
    document.write(arr[1]());

输出为5,正如我预期的那样

但是当我在返回i之间添加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,但我不明白为什么。

1 个答案:

答案 0 :(得分:6)

因为i已经两个增量,所以指定的数组元素将是02和{{1 }}。 <$ 1}}被跳过。

4为0时,第一个赋值发生。然后,1在循环结束时递增为1,然后在i的第三个子句中再次递增为2循环头。所以下一个任务是元素2。