ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScriptでオブジェクトが存在するかどうかを確認する方法

JavaScriptでオブジェクトが存在するかどうかを確認する方法

青灯夜游
青灯夜游オリジナル
2021-09-08 18:19:362790ブラウズ

判定方法: 1. "if(!Obj)" ステートメントを使用する; 2. "if(!window.Obj)" を使用する; 3. "if(!this.Obj)" を使用する; 4. "if(typeof Obj=="unknown")" を使用します; 5. "if(Obj==unknown)" などを使用します。

JavaScriptでオブジェクトが存在するかどうかを確認する方法

このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。

#オブジェクトが存在するかどうかを判断する Javascript メソッド

次に、グローバル オブジェクト myObj が存在するかどうかを判断する必要があります。 、それを使用してステートメントを作成します。自然言語で記述されたアルゴリズムは次のとおりです:

  if (myObj不存在){
    声明myObj;
  }

10 個の実装方法を紹介します:


方法 1:

  if (!myObj) {
    var myObj = { };
  }

方法 2:

var コマンドに加えて、正しい結果を得ることができる別の書き換えもあります:

  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:

上記の記述方法の欠点は、一部の実行環境 (V8、Rhino など) では、ウィンドウがトップレベルのオブジェクトではない可能性があることです。したがって、次のように書き直すことを検討してください。

  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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。