#navi_header|JavaScript| オブジェクトリテラルのプロパティリストの末尾要素の","というのは、 #code|javascript|> var o = { abc : 123, def : 456, ^ ここのこと }; ||< である。 結論から言うと、ECMAの仕様上は末尾要素の","は定義されていない。つまり文法エラーとされても問題ない。 IE6/7/8の場合はエラーとなった。 一方Firefox3/3.5, Chrome3などではエラーにならなかった。 ECMA262, 11.1.5 Object Initialiserより: #pre||> ObjectLiteral : { } { PropertyNameAndValueList } PropertyNameAndValueList : PropertyName : AssignmentExpression PropertyNameAndValueList , PropertyName : AssignmentExpression ||< このように、末尾要素の","は定義されていない。 PHPやPythonなど近年のスクリプト言語の多くが配列やハッシュ形式の末尾の","を許してくれているので、JavaScriptでもついつい残したままにしてしまう。Firebugが便利なので、当初はFirefox上で作っていて、末尾","が残ったままIEで動作確認すると正体不明のエラーに遭遇した。ということでよくよく調べたらIE系は末尾","をまじめにエラーとしていただけの話。 いや、でも、マジで一昨日の私の3時間を返して欲しい。 #navi_footer|JavaScript|