似乎以下代码应返回true,但返回false。
var a = {}; var b = {}; console.log(a==b); //returns false console.log(a===b); //returns false
这有什么意义?
常规(==)和严格(===)相等之间的唯一区别是,严格相等运算符禁用类型转换。由于已经在比较两个相同类型的变量,因此使用的相等运算符的类型无关紧要。
==
===
不管您使用常规相等还是严格相等,对象比较仅true 在您比较相同的精确对象时得出 。
true
也就是说,给定var a = {}, b = a, c = {};,a == a,a == b,但a != c。
var a = {}, b = a, c = {};
a == a
a == b
a != c
两个不同的对象(即使它们都具有零或相同的精确属性)也永远不会相等地进行比较。如果需要比较两个对象的属性的相等性。