2

値が未定義のオブジェクトがあります。したがって、以下のようなifケースでテストすることは可能/有効/良い習慣ですか:

if(params === undefined)  
{  
    alert("sound." + params);  
}  

そうでない場合、なぜそれができないのでしょうか。

今のところ、問題なく動作しています。それでも、いつでも問題が発生する可能性があるかどうかを知りたいですか?

ありがとう

4

3 に答える 3

3

理論的undefinedには再定義できるため (少なくとも JS 1.8.5 より前)、使用することをお勧めします。

if (typeof params === 'undefined')

paramsが既知の変数名でない場合でも、これはエラーをスローせずに機能します。

于 2013-05-09T02:57:00.650 に答える
2

typeof varNameより安全な使用のために使用:-

params がコード内のどこかで宣言された変数でない場合、これはエラーをスローしません。

 if(typeof params  === "undefined")
   {
       //it is not defined
   }

 if(params === undefined)   //<-- This will fail of you have not declared the variable 
        //param. with error "Uncaught ReferenceError: params is not defined "
 {
 }

参照未定義

于 2013-05-09T02:57:07.573 に答える