【发布时间】:2018-09-22 20:46:06
【问题描述】:
在 js 中,falsy 值是 0、null、undefined、false、NaN 和 '',其他都是真值。
所以,这意味着 [] 和 {} 也是真实值,但是当比较 []=={} 或 []==[] 或 {}=={} 时返回 false,这是为什么呢?
【问题讨论】:
-
因为它们没有引用相同的东西。
-
引用相同的东西是什么意思?
-
@Pranab — 它们是两个相同的数组,而不是同一个数组。对象比较询问它们是否是同一个对象,而不是它们是否相同。
-
[](或{})是真值这一事实仅在布尔上下文中相关,此时[]必须强制转换为布尔值。比较[]==[]计算为布尔值,但不是每个[]的布尔上下文。
标签: javascript arrays object