[] == [];
[] === [];
都返回false
[]===[]
原因猜测是
相同类型的非原始类型,判断他们的指向是否相同,这里两个 []
各自创建了一个新的底层数组 所以返回不同
[] == []
返回 false
我无法理解
相同类型直接判断值的话应该返回 true
而按照 ==
的隐式转换原则[]
会调用 toString()
方法,得到 ''
空字符串。
两边的 []
都会得到 ''
然后再转换为数字 0
这样的话 不该返回 true 么
“如果两个操作数都是对象,则比较它们是不是同一个对象。如果两个操作数都指向同一个对象,
则相等操作符返回true;否则,返回false。”
直接从书上摘下来的。。。
[]==[]
两边两个数组是独立的两个对象,内存地址不同,所以结果是false。