繁体   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