JavaScript | 第16章「イテレーターとジェネレーター」

javascrpit JavaScript
スポンサーリンク

JavaScript「イテレーターとジェネレーター」要点まとめ

イテレーター(Iterator)

  • 順番に値を取り出す仕組み
  • next() を呼ぶと { value, done } を返す。
    • value: 今の値
    • done: 取り出し終わったら true
  • 配列や文字列なども内部的にイテレーターを使っている。

たとえ:
「次のページをめくる」ボタンを押すと、1枚ずつデータを出してくれるイメージ。

反復可能オブジェクト(Iterable)

  • for...of やスプレッド構文で使えるオブジェクト
  • Symbol.iterator メソッドを持ち、それを呼ぶとイテレーターを返す。
  • 配列・文字列・Map・Set などはもともと反復可能。

ジェネレーター(Generator)

  • イテレーターを簡単に作れる特別な関数
  • 書き方:function*yield を使う。
  • 呼び出すと「一時停止できる関数」になる。
  • next() を呼ぶと、次の yield まで実行が進み、値を返す。

たとえ:
関数の中に「休憩ポイント(yield)」があり、next() で再開できる。

主な用途

  1. 大量データを少しずつ処理(ストリーミング)
  2. 無限列(例:自然数、フィボナッチ)を安全に表現
  3. 非同期処理を順番に扱う(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

まとめ(ひとことで)

イテレーターは「値を順に取り出す仕組み」、
ジェネレーターは「それを簡単に作るための魔法の関数」。

タイトルとURLをコピーしました