MDN wants to learn about developers like you:

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

Document Tags and Contributors

 Contributors to this page: fscholz, kdex, kangchals, eduardoboucas, Mingun, P0lip, arai
 Last updated by: fscholz,