Comparación de objetos en JavaScript: ¿por qué {} !== {} y cómo comparar correctamente?
¡Hola a todos! Acabo de empezar a aprender JavaScript y me encontré con una situación confusa. Estoy tratando de comparar dos objetos que se ven exactamente iguales, pero obtengo false.
Aquí está mi código:
```javascript
const user1 = { name: 'Анна', age: 25 };
const user2 = { name: 'Анна', age: 25 };
console.log(user1 === user2); // false
console.log(user1 == user2); // también false
```
Esperaba que fuera true, ¡ya que las propiedades y sus valores coinciden! Pero JavaScript dice que son diferentes. ¿Por qué sucede esto?
Entiendo que para números y strings funciona normalmente:
```javascript
console.log(5 === 5); // true
console.log('привет' === 'привет'); // true
```
Pero con objetos no. Intenté comparar usando JSON.stringify:
```javascript
console.log(JSON.stringify(user1) === JSON.stringify(user2)); // true
```
Pero me dijeron que es una mala práctica, especialmente si los objetos contienen funciones o fechas. ¿Podrían decirme cómo comparar objetos por contenido correctamente? ¿Hay algún método incorporado?