【发布时间】:2016-12-28 11:11:47
【问题描述】:
我一直在玩 JavaScript 中的数组,但不知道为什么会发生这种情况:
console.log(0 == 0)
//true
console.log([] == 0)
//true
console.log(0 == [])
//true
console.log([] == [])
//false
console.log([] == ![])
// true
空数组左右都等于0,为什么不等于自己呢?
我意识到比较两个对象不会导致true,但是如果您将它们与0 进行比较,为什么它们会被强制为0(或虚假,不应该是这种情况),同时被威胁为如果将它们与另一个数组进行比较,则对象?
【问题讨论】:
-
@sinisake 这可以解释为什么它们彼此不匹配,但它们匹配
0的事实让我完全困惑 -
但是
console.log([] === 0)给了false -
JS 是一种类型非常松散的语言,多态性贯穿其中。所以我建议你学习type coercion in JS主题。
标签: javascript arrays