JS中的所有东西都是一个对象。我一直都知道,我完全理解这一点。我知道为什么{} !== {}
。这是两个不同的对象。就像你写出new Object() == new Object()
一样。
其他一些例子:
{} == {} // => false
[] == [] // => false
/ / == / / // => false
new String() == new String() // => false
但是,字符串也是对象(这就是为什么你可以''.replace()
并扩展它们),所以为什么这样做:
'' == '' // => true
显然,如果这不起作用,比较两个字符串会非常头疼,但这似乎与语言的其余部分不一致。在内部,发生了什么?它只是一次性还是有其他概念背后的呢?
答案 0 :(得分:4)
JavaScript基本上将字符串和数字视为标量,在调用方法时将它们转换为对象,然后在未明确声明new String("");
与数字相同。
没有字符串/数字/布尔相等,你就很难做很多事情。
答案 1 :(得分:3)
答案 2 :(得分:0)
JavaScript中有五种基本类型:Number,String,Boolean,Undefined和Null。将空字符串文字""
与其自身进行比较与比较5 === 5
没有区别。