Why does it return false when comparing two similar objects in JavaScript?
Suppose we have an example below.
let a = { a: 1 };
let b = { a: 1 };
let c = a;
console.log(a === b); // logs false even though they have the same property
console.log(a === c); // logs true hmm
JavaScript compares objects and primitives differently. In primitives it compares them by value while in objects it compares them by reference or the address in memory where the variable is stored. That's why the first console.log
statement returns false
and the second console.log
statement returns true
. a
and c
have the same reference and a
and b
are not.