【问题标题】:Why in Javascript '' == '0' is false but 0 == '' is true? [duplicate]为什么在 Javascript 中 '' == '0' 是假的,但 0 == '' 是真的? [复制]
【发布时间】:2015-02-09 16:45:55
【问题描述】:

我看到了一个令人兴奋且令人困惑的问题。基于“JavaScript,好的部分”:

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

那么,为什么?!

【问题讨论】:

标签: javascript


【解决方案1】:

简单的答案:因为它是。

高级答案:

  • '' == '0' 将项目作为字符串进行比较,因为它们都是字符串。无需更改类型,只需比较即可。它们明显不同,所以false

  • 0 == '' 将项目作为数字进行比较。 '' 转换为 0,所以它们是相同的。

但真的,谁在乎呢?

【讨论】:

    【解决方案2】:

    在第一种情况下,两者都是 String 类型,因此不相等,因为它们是通过它们的值进行比较的。

    在第二种情况下,左侧是Number,因此发生了转换,这使得'' 变为0 因此true

    == 会导致类型转换,然后在需要时进行比较。 === 不进行类型转换,所以

    0 === '' // false
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-16
      相关资源
      最近更新 更多