undefined和null

时间:2011-05-17 13:20:11

标签: javascript

undefined === null => false
undefined == null => true
  1. 我已经考虑了undefined == null的原因并且只发现了一个案例:

    if(document.getElementById() == null) ....
    

    还有其他原因(undefined === null) == false

  2. 是否还有其他使用===的例子 - javascript中的操作?

4 个答案:

答案 0 :(得分:11)

  

是否还有其他原因(undefined === null)== false?

它们不相等,因此Strict Equality Comparison Algorithm认为它们是假的。

  

是否有其他使用的例子=== - javascript中的操作?

===给出了最可预测的结果。当我有类型强制的特定目的时,我只使用==。 (见Abstract Equality Comparison Algorithm。)

答案 1 :(得分:4)

nullundefined是两个不同的概念。 undefined缺少值(如果使用var定义变量而不初始化它,它不包含null,但undefined),而变量null变量存在并使用值null进行初始化,这是一种特殊类型的值。

但是,JavaScript等式运算符已被破坏,Crockford发现它缺乏传递性,因此建议始终使用严格相等(===)。考虑一下这个表在Javascript中发布的好部分:

'' == '0'          // false
0 == ''            // true
0 == '0'           // true

false == 'false'   // false
false == '0'       // true

false == undefined // false
false == null      // false
null == undefined  // true

答案 2 :(得分:3)

===严格相等。

未定义和null不是一回事。

==使用类型强制。

nullundefined相互强迫。

答案 3 :(得分:3)

Type coercion(使用==运算符)可能会导致意外或意外结果。在跟随我在网上找到道格拉斯克罗克福德的所有谈话(主要是雅虎视频)之后,我习惯于一直使用===。鉴于我对严格等于运算符的默认用法,我会对类型强制javascript用例更感兴趣;〜)现在。