[解決済み】配列やオブジェクトの末尾のカンマは仕様の一部なのでしょうか?
2022-05-04 10:27:18
質問
JavaScriptでは末尾のカンマは標準ですか、それともChromeやFirefoxのようなほとんどのブラウザでは許容されていますか?
IEがサポートしていないからといって、それが標準ではないということにはならないでしょう。
以下はその例です(booksの配列の最後の要素の後)。
var viewModel = {
books: ko.observableArray([
{ title: "..", display: function() { return ".."; } },
{ title: "..", display: function() { return ".."; } },
{ title: "..", display: function() { return ".."; } }, // <--right there
]),
currentTemplate: ko.observable("bookTemplate1"),
displayTemplate: function() { return viewModel.currentTemplate(); }
};
解決方法は?
スペック ECMAScript 5 と ECMAScript 3
11.1.5項 をECMAScript 5仕様に追加しました。
ObjectLiteral :
{ }
{ PropertyNameAndValueList }
{ PropertyNameAndValueList , }
そう、仕様の一部なのです。
更新してください。 どうやらこれはES5での新機能のようです。ES3(41ページ)では、ただの定義だった。
ObjectLiteral :
{ }
{ PropertyNameAndValueList }
配列リテラルの場合 ( 11.1.4節 ) はさらに興味深いものです ( 更新してください。 これはES3で既に存在していた)。
ArrayLiteral :
[ Elisionopt ]
[ ElementList ]
[ ElementList , Elision_opt ]
(ここで
Elision_opt
はエリシオン
<サブ
オプト
エリシオンは任意であることを意味する)
Elision
は次のように定義されます。
Elision :
,
Elision ,
つまり、以下のような配列リテラルは
var arr = [1,2,,,,];
は完全に合法です。これは2つの要素を持つ配列を作成しますが、配列の長さを
2 + 3 = 5
.
IE(IE9以前)に過度な期待は禁物です...。
関連
-
[解決済み] [Solved] Uncaught TypeError: nullのプロパティ 'appendChild' を読み取ることができない。
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] let "と "var "の使い分けは?
-
[解決済み] callとapplyの違いは何ですか?
-
[解決済み] 画面サイズ、現在のウェブページ、ブラウザウィンドウのサイズを取得する
-
[解決済み] Bowerとnpmの違いは何ですか?
-
[解決済み] オブジェクトをメンバーとして、プレーンなJavaScriptオブジェクトをループさせる方法
-
[解決済み] varキーワードの目的と、どのような場合に使用する(または省略する)べきですか?
-
[解決済み] オブジェクトのためのマップ関数(配列の代わりに)
-
[解決済み】JavaScriptで2つの配列を結合し、項目の重複を排除する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Angular JS Uncaught Error。[インジェクター:モジュラー]。
-
[解決済み] テスト
-
[解決済み] エラー。モジュールhtmlが見つからない
-
[解決済み】 Uncaught Error: Invariant Violation: 解決済み】 Uncaught Error: Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function but got: object.
-
[解決済み】FirefoxでGoogle Maps V3をリモートで使用すると「googleが定義されていません」と表示される。
-
[解決済み】 Uncaught Reference Error: stLight is not defined (in Chrome only)
-
[解決済み】TypeError:res.jsonは関数ではありません。
-
[解決済み】ETIMEDOUTエラーの対処方法は?
-
[解決済み] JavaScriptで配列の長さを初期化する方法は?
-
[解決済み] なぜリストでは末尾のカンマが許されるのですか?