JavaScript「イテレーターとジェネレーター」要点まとめ
イテレーター(Iterator)
- 順番に値を取り出す仕組み。
next()を呼ぶと{ value, done }を返す。value: 今の値done: 取り出し終わったらtrue
- 配列や文字列なども内部的にイテレーターを使っている。
たとえ:
「次のページをめくる」ボタンを押すと、1枚ずつデータを出してくれるイメージ。
反復可能オブジェクト(Iterable)
for...ofやスプレッド構文で使えるオブジェクト。Symbol.iteratorメソッドを持ち、それを呼ぶとイテレーターを返す。- 配列・文字列・Map・Set などはもともと反復可能。
ジェネレーター(Generator)
- イテレーターを簡単に作れる特別な関数。
- 書き方:
function*とyieldを使う。 - 呼び出すと「一時停止できる関数」になる。
next()を呼ぶと、次のyieldまで実行が進み、値を返す。
たとえ:
関数の中に「休憩ポイント(yield)」があり、next() で再開できる。
主な用途
- 大量データを少しずつ処理(ストリーミング)
- 無限列(例:自然数、フィボナッチ)を安全に表現
- 非同期処理を順番に扱う(async generator)
よく出る例
function* range(from, to) {
for (let i = from; i <= to; i++) {
yield i;
}
}
for (const n of range(1, 3)) console.log(n); // 1, 2, 3
JavaScriptまとめ(ひとことで)
イテレーターは「値を順に取り出す仕組み」、
ジェネレーターは「それを簡単に作るための魔法の関数」。

