Can somebody explain this weird behavior of javascript on comparing the existence of an object in an array

Can somebody explain this weird behavior of javascript on comparing the existence of an object in an array

Equality checks work different for objects than for strings or numbers:
console.log('hello' === 'hello');
console.log(2 === 2);
console.log({x:2} === {x:2});