javascript - 使用空数组时比较运算符 JavaScript 的奇怪行为

标签 javascript

你能解释一下这种奇怪的 JavaScript 行为吗?

第一:

[] === []  false
[] ==  []  false

为什么是假的?对象是相同的,因此它应该返回 true。

第二:

 [] !== []  true
 [] !=  []  true

再说一遍,为什么是真的?对象是相同的。

最佳答案

它们并不相同。 Object identity 由指向同一实例的两个操作数定义。

var a = [],
    b = [];
a == b; // false
a == a; // true

两个文字始终计算为两个不同的实例,这两个实例不被视为相等。如果您正在寻找结构等效性,请参阅 How to compare arrays in JavaScript?

关于javascript - 使用空数组时比较运算符 JavaScript 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19315892/

相关文章:

javascript - 如何在没有 Browserify 的情况下使用 CommonJS 依赖项?

javascript - Angularjs 1.x 中的 Typescript 继承

javascript - 编辑我在表单字段中提交的元素

javascript - Angular ui-router 正则表达式导致错误

javascript - IE 9 压缩 XML DOM 中的空白

javascript - 我想使用 jquery 和 css 选择器读取没有嵌套 div 内容的 div 内容

javascript - IndexedDB - 如何读取对象存储中的最大 ID

javascript - 从 jquery 中的 xml 数组中删除重复的项目

javascript - 将 body 插入 body 中

javascript - 如何在javascript中使用MD5传输密码