109

JavaScript では、変数を宣言できます。それが の場合undefined、チェックできvariable == undefinedます。それはわかっていますが、メモリ内にある場合、まだ知らない値をどのように比較できますか?

たとえば、ユーザーがボタンをクリックすると作成されるクラスがあります。これより前は、クラスは未定義です — どこにも存在しません。どのように比較できますか?

try–<code>catchを使用しない方法はありますか?

4

5 に答える 5

208

// JSでは注意が必要なため、タイプを確認するのが最善の方法です。それで:undefinednullfalse

if(typeof obj !== "undefined") {
    // obj is a valid variable, do something here.
}

typeof常に文字列を返し、変数がまったく存在しない場合でもエラーを生成しないことに注意してください。

于 2010-05-06T07:00:00.973 に答える
70
if (obj === undefined)
{
    // Create obj
}

大規模なJavaScriptプログラミングを行っている場合は、タイプ固有のチェックを行うときに使用する習慣を身に付ける必要があり===ます。!==

また、かなりの量のjavascriptを実行する場合は、JSLint http://www.jslint.comを介してコードを実行することをお勧めします。最初は少し厳しいように見えるかもしれませんが、JSLintが警告するほとんどのことは最終的には来るでしょう。あなたを噛むために戻って。

于 2012-08-01T04:45:33.107 に答える
2
if (document.getElementById('theElement')) // do whatever after this

エラーをスローする未定義のものについては、変数名だけでなく、親オブジェクトのプロパティ名をテストします。

if (blah) ...

行う:

if (window.blah) ...
于 2010-05-06T06:37:27.267 に答える
0

!undefinedは javascript では true であるため、変数またはオブジェクトが未定義であるかどうかを知りたい場合や、アクションを実行したい場合は、次のようにすることができます。

if(<object or variable>) {
     //take actions if object is not undefined
} else {
     //take actions if object is undefined
}
于 2011-07-06T19:09:47.060 に答える
-2
if (!obj) {
    // object (not class!) doesn't exist yet
}
else ...
于 2010-05-06T06:48:37.487 に答える