JavaScriptのジェネレータ関数とreturn文について


ジェネレータ関数は、functionキーワードの後にアスタリスク(*)を付けて宣言されます。関数内でyield文を使用することで、値を生成することができます。例えば、以下のコードは、1から5までの数値を順番に生成するジェネレータ関数です。

function* numberGenerator() {
  yield 1;
  yield 2;
  yield 3;
  yield 4;
  yield 5;
}

このジェネレータ関数を実行すると、順番に値が生成されます。以下のコードは、ジェネレータ関数から値を取得し、コンソールに出力する例です。

const generator = numberGenerator();
console.log(generator.next().value); // 1
console.log(generator.next().value); // 2
console.log(generator.next().value); // 3
console.log(generator.next().value); // 4
console.log(generator.next().value); // 5

return文は、ジェネレータ関数内で使用することもできます。return文を使用すると、ジェネレータ関数から値を返し、関数の実行を終了させることができます。以下のコードは、ジェネレータ関数内でreturn文を使用した例です。

function* numberGenerator() {
  yield 1;
  yield 2;
  yield 3;
  return 4;
  yield 5; // この行は実行されません
}

上記のコードでは、return文によって値4が返され、ジェネレータ関数の実行が終了します。したがって、4以降のyield文は実行されません。

以上が、JavaScriptのジェネレータ関数とreturn文の基本的な使用方法です。これを参考にして、自身でさまざまなジェネレータ関数を作成してみてください。