Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2016年9月.
function* キーワードは、式の中でジェネレーター関数を定義するために使用することができます。
また、ジェネレーター関数はfunction*宣言を使用して定義することもできます。
メモ: 式文は、function*宣言との曖昧さを避けるため、キーワード function で始めることはできません。function キーワードが式を始めるのは、文を受け入れないコンテキストで現れる場合のみです。
関数名。省略可。省略した場合、関数は無名関数として認識されます。名前は関数本体のみにローカルです。
paramN 省略可関数の形式引数の名前。 引数の構文については、関数リファレンスを参照してください。
statements 省略可関数の本体を構成する文。
function* 式は function* 宣言ととてもよく似ており、構文もほとんど同じです。function* 式と function* 文の主な違いは、function* 式で無名ジェネレーター関数を生成する場合は関数名が省略できる点です。 function* 式は、定義すると直ちに実行する IIFE (即時実行関数式)として使用できるため、その場で作成する反復可能イテレーターオブジェクトを実現することができます。詳細は関数に関する章も参照してください。
次の例では、無名ジェネレーター関数を定義し、x に代入します。この関数は引数の二乗を生成します。
| ECMAScript® 2027 Language Specification # sec-generator-function-definitions |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2025年9月1日 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.