[過去ログ] + JavaScript の質問用スレッド vol.117 + (1001レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
418(2): デフォルトの名無しさん [sage] 2014/12/09(火) 22:30:22.13 ID:jqkVke/n(2/3) AAS
めんどくせーやつだな。じぶんでしらべろよ
外部リンク[html]:dqn.sakusakutto.jp
ECMAScriptの仕様はどうなっているのか
ECMAScript3
Standard ECMA-262 3rd Edition-December1999
「11.1.5 Object Initialiser」という章に記載があります。
Syntax
ObjectLiteral :
{ }
{ PropertyNameAndValueList }
PropertyNameAndValueList :
PropertyName : AssignmentExpression
PropertyNameAndValueList , PropertyName : AssignmentExpression
ケツカンマなしスタイルで書かれています。
結論としては「ECMAScript3の世界ではケツカンマを書かないほうがよい」と言えるかと思います。
ECMAScript5
Standard ESMA 262 5.1 Edition
「11.1.5 Object Initialiser」という章に記載があります。
Syntax
ObjectLiteral :
{ }
{ PropertyNameAndValueList }
{ PropertyNameAndValueList , }
ケツカンマが明示的に記載されています。
「ECMAScript5の世界ではオブジェクトケツカンマは堂々と書いてよい」という結論になります。
(余談:ECMAScript5の配列ケツカンマについては、仕様書を見ても扱いがよくわかりませんでした。)
420: デフォルトの名無しさん [sage] 2014/12/09(火) 23:35:38.94 ID:k/GLXqco(3/4) AAS
>>418
>「11.1.5 Object Initialiser」という章に記載があります。
やはり、配列初期化子ではなくオブジェクト初期化子だったね
オブジェクト初期化子と勘違いしていた、で正しかった
421(1): デフォルトの名無しさん [sage] 2014/12/09(火) 23:53:44.65 ID:k/GLXqco(4/4) AAS
> そもそも、配列で末尾カンマしたら length が変わるので、カンマを入れる前とデータが変わっちゃうはずなんだけど
これは訂正
ES3 では最後のカンマは無視する仕様だね(Elision の説明に書いてある)
よって>>416416(2): デフォルトの名無しさん [sage] 2014/12/09(火) 21:06:23.18 ID:jqkVke/n(1/3) AAS
>>391
> なぜIE6〜8は配列の最後尾にカンマがあるとエラーになるのか?
それがECMAScript3の正しい仕様だから。
なお、次のECMAScript5(ECMAScript4は廃止)が
リリースされたのは2009年12月
IE6は2001年、IE7は2006年、IE8は2009年3月
IE9は2011年
は間違い
>>416では配列初期化子の話だったはずなのに>>418ではオブジェクト初期化子で反論するという頓珍漢な話の持って生き方をする人だね
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.045s