为什么for..of不记录foo值?

时间:2016-02-02 08:46:00

标签: javascript

我正在查看关于JS的mozilla文档的示例,这里有一个片段,显示For..of打印3,5,7,但为什么不“hello”?

let arr = [3, 5, 7];
arr.foo = "hello";

for (let i in arr) {
   console.log(i); // logs "0", "1", "2", "foo"
}

for (let i of arr) {
   console.log(i); // logs "3", "5", "7" ?????
}

1 个答案:

答案 0 :(得分:0)

数组是元素的迭代。这就是它的定义方式。这就是Array[Symbol.iterator]的实施方式。

请参阅this

Source

编辑:
foo是财产。例如,3是一个元素但是"你好" ISN'吨。元素是作为整数值属性的值出现的值。