为什么在JavaScript中,{} == {}是false?

14

为什么在JavaScript中,{} == {} 和 {} === {} 都是false?

{} == {} // false
{} === {} // false

无法重现问题,我得到了 false - thefourtheye
2个回答

15

1) 这是由于JavaScript内部实际上有两种不同的测试相等性的方法。像字符串和数字这样的原始类型按它们的值进行比较,而像数组、日期和纯对象这样的对象按它们的引用进行比较。引用比较基本上是检查给定的对象是否引用了内存中的同一位置。

{} == {}   is false

2)无论你使用==还是===来比较对象都没有影响,因为比较它们总是返回false。


12

Javascript使用身份标识而非值来比较对象。每个对象,每个 {} 都是独立的。

同样适用于数组。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接