String.prototype[@@iterator]()

この記事は翻訳が完了していません。 この記事の翻訳にご協力ください

概要

文字列値のコードポイントを反復処理し新しいIteratorオブジェクトを返します。文字列値として各コードポイントを返します。

構文

string[Symbol.iterator]

例: [@@iterator]()を使う

var string = 'A\uD835\uDC68';

var strIter = string[Symbol.iterator]();

console.log(strIter.next().value); // "A"
console.log(strIter.next().value); // "\uD835\uDC68"

例: for..ofとともに[@@iterator]()を使う

var string = 'A\uD835\uDC68B\uD835\uDC69C\uD835\uDC6A';

for (var v of string) {
  console.log(v);
}
// "A"
// "\uD835\uDC68"
// "B"
// "\uD835\uDC69"
// "C"
// "\uD835\uDC6A"

仕様

仕様 状況 コメント
ECMAScript 2015 (6th Edition, ECMA-262)
String.prototype[@@iterator]() の定義
標準 Initial definition.

ブラウザ実装状況

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
@@iteratorChrome 完全対応 38Edge 完全対応 12Firefox 完全対応 36
完全対応 36
未対応 27 — 36
補足 代替名
補足 A placeholder property named @@iterator is used.
代替名 非標準の名前 @@iterator を使用しています。
未対応 17 — 27
補足 代替名
補足 A placeholder property named iterator is used.
代替名 非標準の名前 iterator を使用しています。
IE 未対応 なしOpera 完全対応 25Safari 未対応 なしWebView Android 完全対応 38Chrome Android 完全対応 38Firefox Android 完全対応 36
完全対応 36
未対応 27 — 36
補足 代替名
補足 A placeholder property named @@iterator is used.
代替名 非標準の名前 @@iterator を使用しています。
未対応 17 — 27
補足 代替名
補足 A placeholder property named iterator is used.
代替名 非標準の名前 iterator を使用しています。
Opera Android 完全対応 25Safari iOS 未対応 なしSamsung Internet Android 完全対応 3.0nodejs 完全対応 0.12

凡例

完全対応  
完全対応
未対応  
未対応
実装ノートを参照してください。
実装ノートを参照してください。
非標準の名前を使用しています。
非標準の名前を使用しています。

Gecko固有のメモ

  • Gecko 17 (Firefox 17 / Thunderbird 17 / SeaMonkey 2.14)からGecko 26 (Firefox 26 / Thunderbird 26 / SeaMonkey 2.23 / Firefox OS 1.2)までiterator プロパティが使われていました(バグ 907077)。Gecko 27 (Firefox 27 / Thunderbird 27 / SeaMonkey 2.24)からGecko 35 (Firefox 35 / Thunderbird 35 / SeaMonkey 2.32)まで"@@iterator" プレースホルダが@@iterator symbol のかわりに使われていました(バグ 918828)。

参照