javascript - 为什么 [1,[2,3]] != [1,[2,3]]

标签 javascript logic

Possible Duplicate:
How do you determine equality for two JavaScript objects?

为什么[1,[2,3]] == [1,[2,3]]评估结果为假?

另外,为什么会发生这种情况:

var g = { a:1, b:2, c:3 };
g == { a:1, b:2, c:3 }; // false!! 

最佳答案

[] 是创建数组文字的快捷方式,而不是调用 new Array() 然后填充它。 {} 的情况类似。在您的示例中,您实际上是通过引用而不是通过值进行比较。使用 new 运算符构造的两个对象指向内存中的不同位置,当您使用 == 运算符时,您实际上是在说“这些对象是否指向内存中的同一位置”内存?”。要像您期望的那样进行按值比较,您需要迭代要比较的每个数组/对象的成员,并逐一比较每个值。

关于javascript - 为什么 [1,[2,3]] != [1,[2,3]],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11749105/

相关文章:

javascript - 如何在服务器端渲染中正确使用带有 ant design 库的 next js?

javascript - 如何创建带验证的谷歌验证码

javascript - 如何在 PhantomJS 中转到下一页进行抓取

javascript - 如何从两个数组中获取与AngularJS中第一个数组大小相同的数组?

java - 逻辑问题和创建表格

java - 如何使用 JUnit 测试 Java Web 服务?

mysql - 将复杂逻辑转换为 MySQL CASE 语句

c++ - 为什么 C++ 应用程序可能会错误地评估表达式?

javascript - React JS 在使用 Axios 的 XMLHttpRequest 中出错

javascript - 在javascript中获取下拉列表的值