Avatar ·

JavaScript中的对象比较:为什么{} !== {}以及如何正确比较?

大家好!我刚开始学习JavaScript,遇到了一个令人困惑的情况。我试图比较两个看起来完全相同的对象,但得到了false。 这是我的代码: ```javascript const user1 = { name: '安娜', age: 25 }; const user2 = { name: '安娜', age: 25 }; console.log(user1 === user2); // false console.log(user1 == user2); // 也是false ``` 我原本期望结果是true,因为属性和它们的值都匹配!但JavaScript说它们不同。为什么会这样? 我理解对于数字和字符串,这是正常工作的: ```javascript console.log(5 === 5); // true console.log('你好' === '你好'); // true ``` 但对于对象却不是这样。我尝试通过JSON.stringify进行比较: ```javascript console.log(JSON.stringify(user1) === JSON.stringify(user2)); // true ``` 但有人告诉我这不是好方法,特别是当对象包含functions或dates时。请告诉我如何根据内容正确比较对象?是否有内置的