0

変数またはプロパティが存在するかどうかを確認する方法は2つあります。

最初のものは、偽の値が返されないことを主張します。

1.1。

var testVar;
if(!testVar){

    //use testVar becuase it exists 

}

2つ目は、2つの条件を明示的にアサートします。

2.2。

var testVar;

if(testVar !== undefined && testVar !== null){

    //use testVar becuase it exists 

}

オブジェクト/文字列/数値/配列が存在するかどうかを確認する目的で、2つの間に違いはありますか?

4

3 に答える 3

2

彼らは違う。{}or1またはtrueor "nyan cat" ニャン!...をに入れようとすると、次のようにtestVar戻ります。false!testVar

var testVar = {};
if(!testVar){  //false
    //will not be executed, but testVar does exist
}

ここに画像の説明を入力してください

変数が存在するかどうかを確認するためのより良い方法:

typeof(randomVar); //undefined
typeof(window);    //object

PS

var testVar;
if(!testVar){
    //...
}

これは実際には存在するかどうかをチェックしません。試す

var testVar = "something";
if(!testVar){              //false
    console.log("Exist.");
}
//nothing happens.
于 2013-02-06T06:26:09.527 に答える
0

Object.hasOwnProperty()を呼び出すことでオブジェクトプロパティが存在するかどうかを確認できますが、現在のスタックフレームを明示的に参照できないため、変数が存在するかどうかを確認することはできません。

于 2013-02-06T06:28:01.847 に答える
0

0、-0、null、false、NaN、未定義の空の文字列""はfalseとして評価されます。

値0のtestVarが有効な条件である場合でも、1番目のソリューションはそれを「false」として扱います。したがって、2番目のソリューションはあなたのケースにより良く役立ちます。

于 2013-02-06T06:29:18.677 に答える