Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【JavaScript ECMAScript】function*文の使い方

function*文の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

function*関数は、ジェネレータ関数を定義するために使用する特別な構文です。通常の関数は一度実行されると最後まで処理が進みますが、ジェネレータ関数は実行中に一時停止し、後で再開できるという特徴を持っています。

この一時停止と再開は、yieldキーワードを用いることで実現されます。ジェネレータ関数内でyieldキーワードが実行されるたびに、関数は呼び出し元に値を返し、その時点での実行を一時停止します。次に呼び出し元から処理の再開が指示されると、yieldキーワードの次の行から実行が再開されます。

function*で定義されたジェネレータ関数を呼び出すと、直接結果が返されるのではなく、イテレータオブジェクトが返されます。このイテレータオブジェクトのnext()メソッドを呼び出すことで、ジェネレータ関数の処理をステップ実行し、yieldキーワードが返した値を取り出すことができます。これにより、必要な値を一つずつ逐次的に生成することが可能となり、特に大きなデータのリストを一度にメモリにロードせずに処理するといった、メモリ効率の良いプログラミングが実現できます。無限のシーケンスや複雑な非同期処理の管理など、様々な場面で役立ちます。

公式リファレンス: function*

構文(syntax)

1function* generatorFunctionName() {
2  yield /* 値1 */;
3  yield /* 値2 */;
4}

引数(parameters)

引数なし

引数はありません

戻り値(return)

戻り値なし

戻り値はありません

関連コンテンツ

関連プログラミング言語