有谁可以解释为什么这些JavaScript数组不等式比较评估为真?
[""] !== [""]
[1] !== [1]
[] !== []
[""] != [""]
[1] != [1]
[] != []
答案 0 :(得分:8)
===
严格相等
比较对象时,如果双方都引用同一个对象,则只返回true。
[]
和[]
是两个不同的(虽然等效)对象,因此返回false。
==
是平等的。
它将尝试将两个操作数强制转换为相同的类型,如spec中所述。
但是,它也通过引用标识来比较对象。