JavaScriptでは変数を宣言でき、undefined
の場合はvariable == undefined
;を確認できます。私はそれを知っていますが、まだメモリにあるかどうかわからない値をどのように比較できますか?
たとえば、ユーザーがボタンをクリックすると作成されるクラスがあります。これ以前は、クラスは未定義です-どこにも存在しません。どうやって比較できますか?
try
–catch
を使用しない方法はありますか?
undefined
/null
/false
はJSでは扱いにくいため、最良の方法はtypeをチェックすることです。そう:
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 ...