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

  • 在javascript中是否还有其他使用
    ==
    -操作的示例

  • 是否有其他原因使(未定义===null)==false

    他们不平等,所以法官认为他们是错误的

    javascript中是否还有其他使用==-操作的示例


    ==
    给出了最可预测的结果。我仅在有特定的类型强制用途时才使用
    ==
    。(请参阅。)

    ==
    是严格相等的

    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