【JavaScript ECMAScript】function*文の使い方
function*文の使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
function*関数は、ジェネレータ関数を定義するために使用する特別な構文です。通常の関数は一度実行されると最後まで処理が進みますが、ジェネレータ関数は実行中に一時停止し、後で再開できるという特徴を持っています。
この一時停止と再開は、yieldキーワードを用いることで実現されます。ジェネレータ関数内でyieldキーワードが実行されるたびに、関数は呼び出し元に値を返し、その時点での実行を一時停止します。次に呼び出し元から処理の再開が指示されると、yieldキーワードの次の行から実行が再開されます。
function*で定義されたジェネレータ関数を呼び出すと、直接結果が返されるのではなく、イテレータオブジェクトが返されます。このイテレータオブジェクトのnext()メソッドを呼び出すことで、ジェネレータ関数の処理をステップ実行し、yieldキーワードが返した値を取り出すことができます。これにより、必要な値を一つずつ逐次的に生成することが可能となり、特に大きなデータのリストを一度にメモリにロードせずに処理するといった、メモリ効率の良いプログラミングが実現できます。無限のシーケンスや複雑な非同期処理の管理など、様々な場面で役立ちます。
公式リファレンス: function*
構文(syntax)
1function* generatorFunctionName() { 2 yield /* 値1 */; 3 yield /* 値2 */; 4}
引数(parameters)
引数なし
引数はありません
戻り値(return)
戻り値なし
戻り値はありません