来自 Underscore 文档的 JavaScript 相等性

标签 javascript

我在 underscore.js 文档的 _.isEqual 下看到了这一点。为什么会这样?

var moe   = {name: 'moe', luckyNumbers: [13, 27, 34]};
var clone = {name: 'moe', luckyNumbers: [13, 27, 34]};
moe == clone;
=> false

是不是因为字符串和数字不是对象,所以可以比较它们,但 JS 不允许比较数组或对象文字?

最佳答案

对象字面量总是定义一个新对象,因此变量 moeclone 引用不同的对象。

An expression comparing Objects is only true if the operands reference the same Object

read more about comparison

还有this post有一个很好的答案,具有深度“相似”比较功能

关于来自 Underscore 文档的 JavaScript 相等性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19342000/

相关文章:

JavaScript:在 requestAnimationFrame 循环中使用 cancelAnimationFrame

javascript - 当具有相同类名的多个元素添加了类时发出警报

javascript - ios、safari 设备上的 Bootstrap popover 对齐问题

javascript - 使用数据同位素添加装订线值并设置 div 的高度

javascript - 如何使用批处理文件循环 imacro 脚本

javascript - jQuery 将 $this 传递给函数参数

JavaScript删除除一个之外的所有隐藏元素

javascript - SVG 不位于 div/tab(li) 内

javascript - 如何从javascript中的数组中删除重复对象?

javascript - 我可以在 Js 中更改对象的大小吗?