JavaScriptの連想配列(Object)の書き方

連想配列やObjectをリテラルで書くときは

var hash = { a: 'A', b: 'B', c: 'C' }

と書く。
これを

//これはだめ
var hash = { a: 'A', b: 'B', c: 'C', }

としてはいけない。つまり、perlのように最後に余分な「,」を付けてはいけない*1
ECMAScript Spec: 11. Expressionsにはたしかにそのように書かれてある。
あと、JSONの仕様だと文字列はダブルクオーテーションで括らなくてはだめで*2、また連想配列の名前(オブジェクトのプロパティ名)はそのような文字列でないとだめ。つまり以下のようにしないとだめ。

{ "a": "A", "b": "B", "c": "C" }

配列はどうか

配列リテラル

var array = [1,2,3,,,6,,]

としてもいいようだ。この場合だと array[3]はundefinedとなり、array.lengthは8となる。
ただし、やはりこれはJSONとしてはだめなようで

[ 1,2,3,null,null,6,null,null]

とする必要があるようだ*3

*1:Firefoxでは問題ないがIEだとエラーになる

*2:シングルクオーテーションではだめ

*3:ただし、JavaScriptではundefinedとnullは厳密には異なる→http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Operators:Comparison_Operators