末尾カンマ 【trailing comma】 最後のカンマ
例えば、JavaScriptの配列を宣言する際に var a=[ 1, 2, 3, ]; と書くように、カンマ区切りの要素列の末尾をカンマとする書き方を指す。オブジェクトであれば var o={ "foo":1, "bar":2, "buz":3, };、関数の引数であれば function f( p1, p2, ){…} のような書き方である。
このような書き方を許容するか、文法エラーとして拒絶するかは言語仕様によって異なる。許容する場合、末尾のカンマは単に無視してカンマが無い場合と同様に扱うことが多いが、a=[ 1, 2, 3, , ] のように複数並べるとその数だけ空要素を定義するといった挙動になっている言語もある。
末尾カンマが許容されない場合、末尾の要素以外の後にはカンマが付き、末尾の要素だけカンマが付かないことになるため、プログラムコード上で一行に一つずつ要素を列挙しているような場合、要素の追加や順番の入れ替えに伴ってカンマの追加や削除、移動などを慎重に行わなければならない。末尾カンマが許可されていれば、すべての要素の末尾にカンマを付けてよいため、追加や並べ替えがあってもカンマの編集を行わなくてよい利点がある。
末尾カンマはPerlやRuby、Python、PHP、C#、Kotlin、Swiftなどで利用でき、JavaScriptは2009年のECMAScript 5(ES5)以降で利用できる。JSONは古いJavaScriptの仕様に基づいて独立した規格として定義されたため、現在も末尾カンマは許容していない。
(2024.3.19更新)