Comparaison d'objets en JavaScript : pourquoi {} !== {} et comment comparer correctement ?
Bonjour à tous ! Je viens de commencer à étudier JavaScript et j'ai rencontré une situation incompréhensible. J'essaie de comparer deux objets qui semblent complètement identiques, mais j'obtiens false.\n\nVoici mon code :\n\n```javascript\nconst user1 = { name: 'Анна', age: 25 };\nconst user2 = { name: 'Анна', age: 25 };\n\nconsole.log(user1 === user2); // false\nconsole.log(user1 == user2); // aussi false\n```\n\nJe m'attendais à ce que ce soit true, car les propriétés et leurs valeurs correspondent ! Mais JavaScript dit qu'ils sont différents. Pourquoi cela se produit-il ?\n\nJe comprends que pour les nombres et les chaînes, cela fonctionne normalement :\n\n```javascript\nconsole.log(5 === 5); // true\nconsole.log('привет' === 'привет'); // true\n```\n\nMais avec les objets — non. J'ai essayé de comparer via JSON.stringify :\n\n```javascript\nconsole.log(JSON.stringify(user1) === JSON.s