Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。
* この機能の一部は、対応レベルが異なる場合があります。
末尾カンマ (「最後のカンマ」と呼ばれることもあります) は、JavaScript のコードに新しい要素や引数、プロパティを追加するときに役立ちます。新しいプロパティを追加するとき、最終行ですでに末尾カンマを使用していれば、最終行を修正することなく新しい行を追加できます。これによって、バージョン管理の差分がより洗練され、コード編集の煩雑さを軽減できます。
JavaScript は、当初から配列リテラルで末尾カンマを使用できました。オブジェクトリテラル、関数の引数、名前付きインポート、名前付きエクスポートなどにおいても、末尾カンマを同時に使用することができるようになりました。
しかし、JSON では末尾カンマをすべて許容していません。
JavaScript で、カンマ区切りの値のリストが受け入れられ、最後のアイテムの後にさらに値が続くことがある場合、末尾カンマを使用することができます。次のようなものがあります。
これらすべての場合において、末尾のカンマは完全に任意であり、プログラムの意味づけに何ら影響を与えません。
特に、複数行にわたるリストのアイテムを追加・除去・並べ替えを行う際に有用です。これは、変更が必要な行数を減らすことができるため、編集作業や差分レビューの両方に役立ちます。
JavaScript は配列の末尾カンマを無視します。
2 つ以上の末尾カンマがある場合、省略(または穴)が作られます。穴がある配列は疎配列と呼ばれます (密配列は穴がありません)。配列を、たとえば Array.prototype.forEach() や Array.prototype.map() で反復処理するとき、穴はスキップされます。疎配列は一般的に好ましくないため、末尾に複数のカンマを持つことは避けるべきです。
オブジェクトリテラルでも末尾カンマを使用できます。
関数の引数リストでも、末尾カンマが使用できます。
次の 2 つの関数定義はともに有効で等しいものです。末尾カンマは、関数の length プロパティや arguments オブジェクトに影響を与えません。
末尾カンマは、クラスやオブジェクトのメソッド定義でも使用できます。
次の 2 つの関数呼び出しはともに有効で等しいものです。
関数の定義や呼び出しにおいて引数がカンマしかないと、SyntaxError が発生します。さらに、残余引数を使用しているときは、末尾カンマは使用できません。
末尾カンマは、構造分解パターンの中でも使用できます。
ただし、残余要素が存在する場合、その後にカンマを付けることはできません。
JSON は JavaScript の構文のとても限られたサブセットに基づいているため、JSON では末尾カンマは使用することができません。
どちらの行も SyntaxError が発生します。
正しく JSON を解釈するには、カンマを省略してください。
末尾カンマは名前付きインポートや名前付きエクスポートでも有効です。
末尾カンマは、実行環境が 2 つ目の options 引数も実装している場合に限り、動的インポートで使用することができます。
メモ: 量化子の末尾カンマは、実際にはその意味づけを「正確に n」に一致させるものから、「少なくとも n」に一致させるものへと変更します。
ブラウザー互換性一覧表を表示するには、JavaScript を有効にしてください。
より良いインターネットのための青写真。
このコンテンツの一部は、©1998–2026 個人の mozilla.org 協力者です。コンテンツはクリエイティブ・コモンズ・ライセンスのもとで利用できます。