変数が定義されているかどうかを確認したい。例えば、次のコードは未定義エラーをスローする。
alert( x );
このエラーをどうやって見つければよいのでしょうか?
ベストアンサー1
JavaScript では、null
はオブジェクトです。存在しないものには別の値 がありますundefined
。DOM は、null
ドキュメント内で何らかの構造が見つからない場合はほとんどの場合 を返しますが、JavaScript 自体ではundefined
という値が使用されます。
2 番目に、いいえ、直接同等のものはありません。 を具体的に確認したい場合はnull
、次のようにします。
if (yourvar === null) // Does not execute if yourvar is `undefined`
変数が存在するかどうかを確認したい場合は、try
/でのみ実行できますcatch
。 は、typeof
宣言されていない変数と の値で宣言された変数をundefined
同等として扱うためです。
しかし、変数が宣言されているかどうかを確認するには、次のようにしますundefined
。
if (yourvar !== undefined) // Any scope
以前は、変数と同じようにtypeof
再割り当てが可能だったため、 undefined を安全にチェックするには演算子を使用する必要がありました。以前の方法は次のようでした。undefined
if (typeof yourvar !== 'undefined') // Any scope
undefined
再割り当て可能という問題は、2009 年にリリースされた ECMAScript 5 で修正されました。しばらくの間読み取り専用であったas を使用せずに、と を安全に使用し===
て!==
テストできるようになりました。undefined
typeof
undefined
メンバーが独立して存在するかどうかを知りたいが、その値は気にしない場合は、次のようにします。
if ('membername' in object) // With inheritance
if (object.hasOwnProperty('membername')) // Without inheritance
変数が真実の:
if (yourvar)