We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

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(eArr.next().value); // w
console.log(eArr.next().value); // y
console.log(eArr.next().value); // k
console.log(eArr.next().value); // o
console.log(eArr.next().value); // 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.

Browser compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support38 ?


27 — 361 2

17 — 273 4

No25 Yes
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support Yes Yes ?


27 — 361 2

17 — 273 4

Yes Yes Yes

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

2. Supported as @@iterator.

3. A placeholder property named iterator is used.

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,