chrome 对对象迭代器显示什么

What does chrome show for an object iterator

在 chrome 45:

{}[Symbol.iterator]
//returns [Symbol(Symbol.iterator)]
typeof ({}[Symbol.iterator])
//returns "undefined"
({}[Symbol.iterator]) || "foo"
//returns "foo"

所以对象的迭代器是某种未定义的...但是第一行到底显示的是什么?

第一行中的

{} 是一个代码块(其中没有代码),而不是一个对象。然后是一个包含 Symbol.iterator 值的数组文字,这就是控制台显示的值。

当你把 ( 放在 { 之前时,它变成了一个对象,因为你不能在括号中包含代码块。