私のコードでは、これを見ています:
if (document.getElementById('xx') !=null) {
//do stuff
}
xx
要素が定義されていない場合、これはtrueまたはfalseに評価されますか?
私は書くべきです:
if (document.getElementById('xx'))
安全であるために?
_console.log(document.getElementById('xx') ) evaluates to null.
document.getElementById('xx') !=null evaluates to false
_
強力な等価性チェックであるため、document.getElementById('xx') !== null
を使用する必要があります。
getElementById
は、要素が一致しない場合にnull
を返す DOM Level 1 HTML で定義されます。
_!==null
_はチェックの最も明示的な形式であり、おそらく最良ですが、null
が返すことができるgetElementById
以外の偽の値はありません-null
のみを取得できますまたは常に真実のElementオブジェクト。したがって、ここでは_!==null
_、_!=null
_、またはより緩いif (document.getElementById('xx'))
の間に実際的な違いはありません。
はい、存在しない場合はnullを返します。デモで以下を試してください。両方ともtrueを返します。最初の要素は存在しますが、2番目の要素は存在しません。
Html
<div id="xx"></div>
Javascript:
if (document.getElementById('xx') !=null)
console.log('it exists!');
if (document.getElementById('xxThisisNotAnElementOnThePage') ==null)
console.log('does not exist!');