[過去ログ] + JavaScript の質問用スレッド vol.117 + (1001レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
421
(1): デフォルトの名無しさん [sage] 2014/12/09(火) 23:53:44.65 ID:k/GLXqco(4/4) AAS
> そもそも、配列で末尾カンマしたら length が変わるので、カンマを入れる前とデータが変わっちゃうはずなんだけど
これは訂正
ES3 では最後のカンマは無視する仕様だね(Elision の説明に書いてある)
よって>>416
416(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
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の配列ケツカンマについては、仕様書を見ても扱いがよくわかりませんでした。)
ではオブジェクト初期化子で反論するという頓珍漢な話の持って生き方をする人だね
428
(1): デフォルトの名無しさん [sage] 2014/12/10(水) 11:21:15.58 ID:4CT1KEaH(1/5) AAS
>>421
> ES3 では最後のカンマは無視する仕様だね(Elision の説明に書いてある)
なんでこんな仕様になってるんだろうね。
「値無し」を使う初期化が許されてるんだから、
[1,2,3].length => 3
[1,2,3,].length => 4
[1,2,3,,].length => 5
というふうになってた方が一貫性がある気がするんだが。
[1,2,3,undefined]って明示しろってことかな?
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.050s