javaScript for / loop作用域

时间:2013-11-24 02:52:52

标签: javascript scope

我已经编写了这段代码来汇总数组的值。有人可以解释为什么我在最后一个console.log语句中得到了未定义。

var array = [2,3,4,5,6,7];
var sum = 0;

for(var i = 0; i < array.length; i++) { 
    sum = array[i] + sum; 
}

console.log(sum);
console.log(array[i]);

1 个答案:

答案 0 :(得分:5)

这是因为执行的循环i++现在i等于array.length

当您尝试访问之前未定义的对象属性时,JavaScript会返回原始值undefined

但是,由于JavaScript数组基于0,因此仅在0array.length - 1之间填充数组。