为什么 {} == {} 在 JavaScript 中为 false

rel*_*l1x 7 javascript

为什么 {} == {} 和 {} === {} 在 javascript 中是假的?

{} == {} // false
{} === {} // false
Run Code Online (Sandbox Code Playgroud)

And*_*ras 6

javascript 通过身份而不是值来比较对象。每个对象,每个{}都是不同的。

这同样适用于数组。


小智 6

1) 这样做的原因是 JavaScript 在内部实际上有两种不同的测试相等性的方法。像字符串和数字这样的原语通过它们的值进行比较,而像数组、日期和普通对象这样的对象通过它们的引用进行比较。通过引用进行比较基本上检查给定的对象是否引用内存中的相同位置。so

{} == {}   is false
Run Code Online (Sandbox Code Playgroud)

2) 使用 == 或 === 比较对象没有任何区别,因为比较它们总是返回 false。