ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScriptでオブジェクトが存在するかどうかを確認する方法
判定方法: 1. "if(!Obj)" ステートメントを使用する; 2. "if(!window.Obj)" を使用する; 3. "if(!this.Obj)" を使用する; 4. "if(typeof Obj=="unknown")" を使用します; 5. "if(Obj==unknown)" などを使用します。
このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。
#オブジェクトが存在するかどうかを判断する Javascript メソッド
次に、グローバル オブジェクト myObj が存在するかどうかを判断する必要があります。 、それを使用してステートメントを作成します。自然言語で記述されたアルゴリズムは次のとおりです:if (myObj不存在){ 声明myObj; }10 個の実装方法を紹介します:
方法 1:
if (!myObj) { var myObj = { }; }
方法 2:
if (!window.myObj) { myObj = { }; }window is the top- JavaScript のレベル オブジェクト。すべてのグローバル変数はそのプロパティです。したがって、myobj が空であるかどうかを判断することは、window オブジェクトが myobj 属性を持っているかどうかを判断することと同等であるため、myObj が定義されていないために発生する ReferenceError エラーを回避できます。ただし、コードの標準化の観点から、2 行目に var を追加するのが最善です:
if (!window.myObj) { var myObj = { }; }または次のように記述します:
if (!window.myObj) { window.myObj = { }; }
方法 3:
if (!this.myObj) { this.myObj = { }; }グローバル変数のレベルでは、this キーワードは常にトップレベルの変数を指すため、さまざまな動作環境に依存する必要はありません。
方法 4:
ただし、上記の書き方は読みにくく、ポインタが可変でエラーが発生しやすいため、さらに書き直します:var global = this; if (!global.myObj) { global.myObj = { }; }カスタム変数 global を使用してトップレベルのオブジェクトを表す方がはるかに明確です。
方法 5:
typeof 演算子を使用して、myObj が定義されているかどうかを確認することもできます。if (typeof myObj == "undefined") { var myObj = { }; }これは、JavaScript オブジェクトが存在するかどうかを確認するために現在最も広く使用されている方法です。
方法 6:
myObj の値は、定義されていても代入されていない場合、そのまま unknown に等しいため、上記の記述方法は次のように簡略化できます。if (myObj == undefined) { var myObj = { }; }
ここで注意すべき点が 2 つあります。1 つ目は、2 行目の var キーワードを省略することはできません。省略すると ReferenceError が発生します。2 つ目は、データ型が unknown であるため、unknown を一重引用符または二重引用符で追加することはできません。ここで比較されるのは、文字列「未定義」の代わりです。
方法 7:上記の記述方法は、「完全比較」(===) の場合にも当てはまります:
if (myObj === undefined) { var myObj = { }; }方法 8:
JavaScript の言語設計によれば、unknown == null であるため、myObj が null に等しいかどうかを比較しても正しい結果が得られます:
if (myObj == null) { var myObj = { }; }
ただし実行結果は正しいですが、意味的な観点から見ると、この判断方法は間違っているため、避けるべきです。 null は、null の値が割り当てられた空のオブジェクトを指します。つまり、このオブジェクトには実際に値があります。一方、未定義は、存在しないか、値が割り当てられていないオブジェクトを指します。したがって、ここで使用できるのは「比較演算子」(==)のみであり、「完全比較演算子」(===)を使用するとエラーとなります。
方法 9:in 演算子を使用して、myObj がトップレベル オブジェクトの属性であるかどうかを判断することもできます:
if (!('myObj' in window)) { window.myObj = { }; }方法 10 :
最後に、hasOwnProperty メソッドを使用して、myObj がトップレベル オブジェクトのプロパティであるかどうかを確認します。
#1. オブジェクトが存在するかどうかを判断するには、5 番目の書き込み方法を使用することをお勧めします。 2. オブジェクトが存在するかどうかに加えて、オブジェクトが null 値を持つかどうかも判断する必要がある場合は、最初の記述方法を使用することをお勧めします。3. 特別な状況がない限り、すべての変数は var コマンドを使用して宣言する必要があります。
4. クロスプラットフォームにするために、トップレベルのオブジェクトを表すためにウィンドウを使用しないことをお勧めします。 5. Javascript 言語では、null と未定義は混同されやすいです。両方が関係する可能性がある場合は、「完全比較」演算子 (===) を使用することをお勧めします。 [推奨学習:JavaScript 上級チュートリアル
]以上がJavaScriptでオブジェクトが存在するかどうかを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。