javascript - 为什么两个相同的对象彼此不相等?

标签 javascript

似乎下面的代码应该返回 true,但它返回 false。

var a = {};
var b = {};

console.log(a==b); //returns false
console.log(a===b); //returns false

这有什么意义?

最佳答案

常规 (==) 和严格 (===) 之间的唯一区别是严格相等运算符禁用类型转换。由于您已经在比较两个相同类型的变量,因此使用哪种相等运算符并不重要。

无论您使用常规相等还是严格相等,对象比较仅在true比较完全相同的对象时才计算得出。

即给定 var a = {}, b = a, c = {};, a == a, a == b,但是 a != c

两个不同的对象(即使它们都具有零个或完全相同的属性)永远不会进行平等比较。如果需要比较两个对象的属性是否相等,this question has very helpful answers .

关于javascript - 为什么两个相同的对象彼此不相等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11704971/

相关文章:

javascript - 有javascript的虚拟机吗?

javascript - 在 JavaScript 中输出长数字的错误

javascript - Mongoose 查询以提取每个对话的最新文档

javascript - 如何使用 Three.js 定义相对于矢量路径的粒子云?

javascript - 如何在Jquery中从字符串中获取域名

javascript - 更改查询字符串而不重新加载/刷新

javascript - 在 puppeteer 中加载页面之前设置本地存储项目?

javascript - 单独文件中的 AngularJS 1.5 Controller

javascript - 具有多个条件的字符串到字符串数组

javascript - chrome.downloads.download 无法从后台服务人员工作