MDN wants to learn about developers like you:

Our volunteers haven't translated this article into 正體中文 (繁體) yet. Join us and help get the job done!
You can also read the article in English (US).

The initial value of the @@iterator property is the same function object as the initial value of the values() property.



Return value

The array iterator function, which is the values() function by default.


Iteration using for...of loop

var arr = ['w', 'y', 'k', 'o', 'p'];
var eArr = arr[Symbol.iterator]();
// your browser must support for..of loop
// and let-scoped variables in for loops
for (let letter of eArr) {

Alternative iteration

var arr = ['w', 'y', 'k', 'o', 'p'];
var eArr = arr[Symbol.iterator]();
console.log(; // w
console.log(; // y
console.log(; // k
console.log(; // o
console.log(; // p


Specification Status Comment
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Array.prototype[@@iterator]()' in that specification.
Standard Initial definition.
ECMAScript Latest Draft (ECMA-262)
The definition of 'Array.prototype[@@iterator]()' in that specification.
Living Standard  

Browser compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support38 ?


27 — 362 3

17 — 274

No25 Yes
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
Basic support Yes Yes ?36 No Yes Yes

1. The @@iterator symbol is implemented.

2. A placeholder property named @@iterator is used.

3. Supported as @@iterator.

4. Supported as iterator.

See also


 此頁面的貢獻者: fscholz, kdex, kangchals, eduardoboucas, Mingun, P0lip, arai
 最近更新: fscholz,