JavaScript では、変数を宣言できます。それが の場合undefined
、チェックできvariable == undefined
ます。それはわかっていますが、メモリ内にある場合、まだ知らない値をどのように比較できますか?
たとえば、ユーザーがボタンをクリックすると作成されるクラスがあります。これより前は、クラスは未定義です — どこにも存在しません。どのように比較できますか?
try
–<code>catchを使用しない方法はありますか?
JavaScript では、変数を宣言できます。それが の場合undefined
、チェックできvariable == undefined
ます。それはわかっていますが、メモリ内にある場合、まだ知らない値をどのように比較できますか?
たとえば、ユーザーがボタンをクリックすると作成されるクラスがあります。これより前は、クラスは未定義です — どこにも存在しません。どのように比較できますか?
try
–<code>catchを使用しない方法はありますか?
// JSでは注意が必要なため、タイプを確認するのが最善の方法です。それで:undefined
null
false
if(typeof obj !== "undefined") {
// obj is a valid variable, do something here.
}
typeof
常に文字列を返し、変数がまったく存在しない場合でもエラーを生成しないことに注意してください。
if (obj === undefined)
{
// Create obj
}
大規模なJavaScriptプログラミングを行っている場合は、タイプ固有のチェックを行うときに使用する習慣を身に付ける必要があり===
ます。!==
また、かなりの量のjavascriptを実行する場合は、JSLint http://www.jslint.comを介してコードを実行することをお勧めします。最初は少し厳しいように見えるかもしれませんが、JSLintが警告するほとんどのことは最終的には来るでしょう。あなたを噛むために戻って。
if (document.getElementById('theElement')) // do whatever after this
エラーをスローする未定義のものについては、変数名だけでなく、親オブジェクトのプロパティ名をテストします。
if (blah) ...
行う:
if (window.blah) ...
!undefined
は javascript では true であるため、変数またはオブジェクトが未定義であるかどうかを知りたい場合や、アクションを実行したい場合は、次のようにすることができます。
if(<object or variable>) {
//take actions if object is not undefined
} else {
//take actions if object is undefined
}
if (!obj) {
// object (not class!) doesn't exist yet
}
else ...