来自 Underscore 文档的 JavaScript 平等
JavaScript equality from Underscore docs
我在下划线.js _.isEqual下的文档上看到了这个。为什么会这样呢?
var moe = {name: 'moe', luckyNumbers: [13, 27, 34]};
var clone = {name: 'moe', luckyNumbers: [13, 27, 34]};
moe == clone;
=> false
是因为字符串和数字不是对象,所以可以比较它们,但 JS 不允许你比较数组或对象文字,它们是对象?
对象文字总是定义一个新对象,因此变量moe
和clone
引用不同的对象。
仅当操作数引用同一对象时,比较对象的表达式才为真
阅读更多关于比较的信息
此外,这篇文章还有一个不错的asnwer,具有深度的"相似"比较功能
使用 JSON.stringify 属性:
JSON.stringify(moe) === JSON.stringify(clone)
注意:属性的顺序非常重要。在这种情况下,moe
的属性应与clone
的属性顺序相同,反之亦然。
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 使用php或javascript从facebook相册URL中删除多余的部分
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何在JavaScript中将字符串转换为函数引用
- 模糊事件的Javascript测试
- Javascript更改图标
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 如何使用WCF服务和javascript表单post上传.doc文件
- javascript结合了数组和字典
- 这是什么 ==- javascript 运算符
- 从javascript创建一个列表
- Javascript平等三重等于,但是大于和小于呢?
- 奇怪的JavaScript平等问题
- 来自 Underscore 文档的 JavaScript 平等
- javascript中的平等
- 如何比较单元格在JavaScript表彼此和测试的平等?indexOf是如何工作的
- Javascript平等的怪异
- Javascript平等声明