有人能解释一下为什么这些JavaScript数组不等式比较会评估为true吗?
[""] !== [""]
[1] !== [1]
[] !== []
[""] != [""]
[1] != [1]
[] != []
[""] !== [""]
[1] !== [1]
[] !== []
[""] != [""]
[1] != [1]
[] != []
===
是严格相等。
比较对象时,仅当两侧引用同一个对象时才返回true。
[]
和[]
是两个不同(但等价)的对象,因此它返回false。
==
是弱相等。
它会尝试将两个操作数转换为相同类型,如规范所述。
但是,它也通过引用标识来比较对象。
new String("a")
将其封装为对象。例如,var a = "a"; a.b = 2; alert(a.b); // undefined
- SLaks