Javascript 未定义且为空
我考虑了Javascript 未定义且为空,javascript,Javascript,我考虑了undefined==null的原因,只发现了一种情况: undefined === null => false undefined == null => true 是否有任何其他原因使(未定义===null)==false 在javascript中是否还有其他使用==-操作的示例 是否有其他原因使(未定义===null)==false 他们不平等,所以法官认为他们是错误的 javascript中是否还有其他使用==-操作的示例 ==给出了最可预测的结果。我仅在有特定的类型
undefined==null
的原因,只发现了一种情况:
undefined === null => false
undefined == null => true
是否有任何其他原因使(未定义===null)==false
==
-操作的示例==
给出了最可预测的结果。我仅在有特定的类型强制用途时才使用==
。(请参阅。)==
是严格相等的
Undefined和null不是一回事
=
使用类型强制
null
和undefined
相互强制。null
和undefined
是两个不同的概念undefined
是指缺少值(如果您使用var定义变量而未初始化它,则它不包含null
,而是undefined
),而使用null
则变量存在并使用值null
初始化,这是一种特殊类型的值
尽管JavaScript相等运算符被破坏,Crockford发现它缺少传递性,因此建议始终使用严格相等(==)。考虑在JavaScript中发布的这个表:好的部分:
if(document.getElementById() == null) ....
类型强制
(使用==运算符)可能会导致意外的结果。在网上看到道格拉斯·克罗克福德的所有谈话之后(大部分是雅虎视频),我习惯了一直使用==
。考虑到我默认使用的严格相等运算符,我对类型强制javascript用例更感兴趣;~)现在。@Raynos:是的,我多等了几秒钟,这样你就可以赶上了;o) “未定义是缺少值(可能变量不存在),”这不太正确。在未定义
的情况下,变量确实存在,但它已被分配(或重新分配)其默认值未定义
。如果试图与不存在的变量进行比较,则会出现ReferenceError
。
'' == '0' // false
0 == '' // true
0 == '0' // true
false == 'false' // false
false == '0' // true
false == undefined // false
false == null // false
null == undefined // true