有効なjavascriptオブジェクトのプロパティ名
2023-09-23 10:54:17
質問
私は、javascriptオブジェクトのプロパティ名として何が有効であると考えられるかを調べようとしています。 例えば
var b = {}
b['-^colour'] = "blue"; // Works fine in Firefox, Chrome, Safari
b['colour'] = "green"; // Ditto
alert(b['-^colour']); // Ditto
alert(b.colour); // Ditto
for(prop in b) alert(prop); // Ditto
//alert(b.-^colour); // Fails (expected)
これは ポスト は、有効なjavascriptの変数名を詳細に記述しており、'-^color'は明らかに(変数名として)有効ではありません。同じことが、オブジェクトのプロパティ名にも当てはまるのでしょうか?上記を見ると、私は以下のことを調べようとしています。
-
b['-^colour'] は無効ですが、奇抜な方法ですべてのブラウザで動作し、今後動作することを信頼すべきではありません。
-
b['-^colour'] は完全に有効ですが、この方法でしかアクセスできない形式です - (サポートされているので、オブジェクトはおそらくマップとして使用することができます?)
-
他の何か
余談ですが、javascriptのグローバル変数は、トップレベルで次のように宣言されるかもしれません。
var abc = 0;
で作成することもできますが、(私の理解では)
window['abc'] = 0;
を指定すると、上記のすべてのブラウザで動作します。
window['@£$%'] = "bling!";
alert(window['@£$%']);
これは有効でしょうか?変数の命名規則と矛盾しているように思えます。それとも、私はそこで変数を宣言していないのでしょうか? 変数とオブジェクトのプロパティ名の違いは何ですか?
どのように解決するのですか?
はい、オブジェクトはマップとして使用でき、任意の文字列をプロパティ名とすることができます。 あなたが発見したように、いくつかのプロパティは だけ でしかアクセスできないプロパティもあります。
window['abc']
はプロパティにアクセスしています。 と同じ値を(グローバルレベルで)参照していても、変数ではありません。
abc
関連
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] JavaScriptのオブジェクトが空であることをテストするにはどうすればよいですか?
-
[解決済み] JavaScriptのオブジェクトにキーが存在するかどうかをチェックする?
-
[解決済み】未定義のオブジェクトプロパティを検出する
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
-
[解決済み] javascriptで2つの数値を連結する方法は?
-
[解決済み] JavaScriptの文字列プリミティブとStringオブジェクトの違いは何ですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JavaScriptの変数名として有効な文字は何ですか?
-
[解決済み] Google maps API V3 - 同一地点に複数のマーカーを設置する。
-
[解決済み] WebStormで未解決の変数が大量にある場合の警告に対処する方法は?
-
[解決済み] コールバック地獄とは何か、RXはそれをどのように、そしてなぜ解決するのか?
-
[解決済み] jQueryで入力ファイルが空かどうかをチェックする方法
-
[解決済み] JavaScriptでjson-objectのキーを取得する [重複].
-
[解決済み] javascriptでオプションのパラメータを扱う
-
[解決済み] Prototypeを使ってtextareaを自動サイズ調整するには?
-
[解決済み] JavaScriptとLuaの微妙な違い [終了しました]
-
[解決済み] Chrome拡張機能:popup.htmlを強制終了させる