【JavaScript ECMAScript】function* expression演算子の使い方
function* expression演算子の使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
function* expression関数は、JavaScriptでジェネレーター関数を定義するための式です。通常の関数が一度実行されると最後まで処理されるのに対し、ジェネレーター関数は実行を一時停止し、後で再開できるという特徴を持ちます。
この関数を呼び出すと、直接結果を返す代わりに、イテレーターと呼ばれる特殊なオブジェクトを返します。このイテレーターオブジェクトにはnext()というメソッドがあり、これを呼び出すたびにジェネレーター関数の内部で定義された次のyield式が評価され、対応する値と、処理が完了したかどうかを示すdoneプロパティを持つオブジェクト(例: { value: "someValue", done: false })が返されます。
yieldキーワードは、ジェネレーター関数の実行を一時停止し、値を「生成(yield)」して外部に渡し、next()が再度呼び出されるまで待機する役割を果たします。これにより、必要なときに必要な値だけを生成する、いわゆる「遅延評価」を実現できます。
function* expressionは、非同期処理の制御や、無限に続くシーケンスの生成、複雑な反復処理の簡潔な記述などに非常に役立ちます。コードの可読性を高め、メモリ効率の良いデータ処理を可能にする強力な機能です。
公式リファレンス: function* expression
構文(syntax)
1const generatorFunction = function* ([param1[, param2[, ..., paramN]]]) { 2 // statements 3};
引数(parameters)
引数なし
引数はありません
戻り値(return)
GeneratorFunction
function* 式は、ジェネレータ関数を定義します。ジェネレータ関数は、実行を一時停止し、後で再開できる特別な関数であり、GeneratorFunction 型の値を返します。