为什么Javascript''=='0'是假的,但0 ==''是真的?

时间:2015-02-09 16:45:55

标签: javascript

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

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

那么,为什么?!

2 个答案:

答案 0 :(得分:2)

简单回答:因为它是。

高级回答:

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

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

但真的,谁在乎呢?

答案 1 :(得分:1)

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

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

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

0 === '' // false