undefined === null => false
undefined == null => true
我已经考虑了undefined == null
的原因并且只发现了一个案例:
if(document.getElementById() == null) ....
还有其他原因(undefined === null) == false
?
是否还有其他使用===
的例子 - javascript中的操作?
答案 0 :(得分:11)
是否还有其他原因(undefined === null)== false?
它们不相等,因此Strict Equality Comparison Algorithm认为它们是假的。
是否有其他使用的例子=== - javascript中的操作?
===
给出了最可预测的结果。当我有类型强制的特定目的时,我只使用==
。 (见Abstract Equality Comparison Algorithm。)
答案 1 :(得分:4)
null
和undefined
是两个不同的概念。 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不是一回事。
==
使用类型强制。
null
和undefined
相互强迫。
答案 3 :(得分:3)
Type coercion
(使用==运算符)可能会导致意外或意外结果。在跟随我在网上找到道格拉斯克罗克福德的所有谈话(主要是雅虎视频)之后,我习惯于一直使用===
。鉴于我对严格等于运算符的默认用法,我会对类型强制javascript用例更感兴趣;〜)现在。