如何...循环语句在Javascript中工作?(ECMAScript 6)

Ram*_*min 3 javascript loops ecmascript-6

我有一个片段,我正在试验for...of它的声明:

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"
}
Run Code Online (Sandbox Code Playgroud)

我的问题是for...of应该运行可迭代的值,对吧?那为什么第二个for不打印"hello"

小智 5

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

http://www.2ality.com/2015/02/es6-iteration.html.