[解決済み】未定義のオブジェクトプロパティを検出する
2022-03-18 23:38:30
質問
JavaScriptのオブジェクトのプロパティが未定義であるかどうかを確認する最も良い方法は何ですか?
どのように解決するのですか?
あるプロパティの値が特殊な値であるかどうかを確認する通常の方法
undefined
である。
if(o.myProperty === undefined) {
alert("myProperty value is the special value `undefined`");
}
オブジェクトが実際にそのようなプロパティを持っていないかどうかをチェックし、その結果として
undefined
にアクセスしようとすると、デフォルトで
if(!o.hasOwnProperty('myProperty')) {
alert("myProperty does not exist");
}
識別子に関連付けられた値が特別な値であるかどうかを確認する場合
undefined
,
または
その識別子が宣言されていない場合
if(typeof myVariable === 'undefined') {
alert('myVariable is either the special value `undefined`, or it has not been declared');
}
注意: この最後の方法は
未宣言の
の値を持つこととは異なります。
undefined
.
ECMAScript 5 より前のバージョンの JavaScript では、グローバルオブジェクトの "undefined" というプロパティは書き込み可能だったので、単純なチェックでは
foo === undefined
が誤って再定義された場合、予期しない動作をする可能性があります。最近のJavaScriptでは、このプロパティは読み取り専用になっています。
しかし、現代のJavaScriptでは、"undefined"はキーワードではないので、関数内の変数に"undefined"という名前を付けて、グローバルプロパティをシャドウすることが可能です。
この(ありえない)エッジケースが心配な方は
void演算子
を取得するために、特別な
undefined
の値そのものを指定します。
if(myVariable === void 0) {
alert("myVariable is the special value `undefined`");
}
関連
-
[解決済み】JavaScript "Uncaught TypeError: object is not a function" 連想性の質問
-
[解決済み】Redux TypeError: 未定義のプロパティ 'apply' を読み取れない
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] JavaScriptのオブジェクトにキーが存在するかどうかをチェックする?
-
[解決済み] JavaScriptで空文字列/未定義文字列/null文字列をチェックするにはどうすればよいですか?
-
[解決済み】別のウェブページにリダイレクトするにはどうすればいいですか?
-
[解決済み】JavaScriptのオブジェクトの長さ
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Facebook Graph API のクエリで with=location を使用すると "Uncaught (in promise) undefined" というエラーが発生する。
-
[解決済み】Javascriptのコールバック関数がFirefoxで「Callback is not a function」というエラーを投げる
-
[解決済み】「Uncaught TypeError: Chromeで "Illegal invocation "が発生する。
-
[解決済み] React with ES7: Uncaught TypeError: Cannot read property 'state' of undefined [duplicate] (未定義のプロパティ'state'を読み込むことはできません。
-
[解決済み】Reactのeslintエラーはpropsの検証で見つからない
-
[解決済み】エラー:リクエストのエンティティが大きすぎる
-
[解決済み】リソースはドキュメントと解釈されるが、MIMEタイプはapplication/zipで転送される
-
[解決済み】Jestが予期しないトークンに遭遇した
-
[解決済み】Uncaught TypeError: 未定義のプロパティ 'msie' を読み取れない - jQuery tools
-
[解決済み] JavaScriptで "undefined "をチェックするにはどうすればよいですか?[重複しています]