Avatar ·

Comparação de objetos em JavaScript: por que {} !== {} e como comparar corretamente?

Olá a todos! Comecei a estudar JavaScript recentemente e me deparei com uma situação confusa. Estou tentando comparar dois objetos que parecem exatamente iguais, mas recebo false. Aqui está meu código: ```javascript const user1 = { name: 'Anna', age: 25 }; const user2 = { name: 'Anna', age: 25 }; console.log(user1 === user2); // false console.log(user1 == user2); // também false ``` Eu esperava que fosse true, já que as propriedades e seus valores coincidem! Mas o JavaScript diz que são diferentes. Por que isso acontece? Entendo que para números e strings funciona normalmente: ```javascript console.log(5 === 5); // true console.log('olá' === 'olá'); // true ``` Mas com objetos — não. Tentei comparar usando JSON.stringify: ```javascript console.log(JSON.stringify(user1) === JSON.stringify(user2)); // true ``` Mas me disseram que é uma má prática, especialmente se os objetos contêm functions ou dates. Alguém pode me explicar como comparar objetos corretamente pelo conteúdo? Existe algum método embutido?