Vergleich von Objekten in JavaScript: warum {} !== {} und wie vergleicht man richtig?
Hallo zusammen! Ich habe gerade angefangen, JavaScript zu lernen, und bin auf eine unverständliche Situation gestoßen. Ich versuche, zwei Objekte zu vergleichen, die völlig gleich aussehen, aber ich bekomme false.
Hier ist mein Code:
```javascript
const user1 = { name: 'Anna', age: 25 };
const user2 = { name: 'Anna', age: 25 };
console.log(user1 === user2); // false
console.log(user1 == user2); // auch false
```
Ich habe erwartet, dass es true ist, da die Eigenschaften und ihre Werte übereinstimmen! Aber JavaScript sagt, dass sie unterschiedlich sind. Warum passiert das?
Ich verstehe, dass es für Zahlen und Strings normal funktioniert:
```javascript
console.log(5 === 5); // true
console.log('hallo' === 'hallo'); // true
```
Aber bei Objekten nicht. Ich habe versucht, mit JSON.stringify zu vergleichen:
```javascript
console.log(JSON.stringify(user1) === JSON.stringify(user2)); // true
```
Aber mir wurde gesagt, dass das ein schlechter Weg ist, besonders wenn die Objekte functions oder dates enthalten. Sagt mir bitte, wie man Objekte korrekt nach Inhalt vergleicht? Gibt es eingebaute
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen