我无法理解javascript如何处理对象相等。 请问有人可以解释下面的输出吗?
1. var x = 3;
2. var y = 3;
3. var obj1 = {};
4. var obj2 = {};
5. var obj3 = obj1;
6. x == y
7. x === y
8. obj1 == obj2
9. obj1 === obj2
10. obj1 == obj3
11. obj1 === obj3
输出:
真
真
假
假
真
- 醇>
真
答案 0 :(得分:1)
使用==
或===
比较对象时,只有当对象相同的对象时才进行比较,而不仅仅是相同构造的对象,而是非常相同的对象。
如果你想比较对象是否构造相同,你可能想看看像LoDash这样的东西:https://lodash.com/docs/4.17.5
此处特别相关的是_.isEqual()
函数:https://lodash.com/docs/4.17.5#isEqual