본문 바로가기

JAVAscript (자바스크립트)

[Javascript]JavaScript에서 유사한 두 개체를 비교할 때 false가 반환되는 이유

[Javascript]JavaScript에서 유사한 두 개체를 비교할 때 false가 반환되는 이유

 

아래 예를 들어 보겠습니다.ㅇ

 

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는 개체와 원시 요소를 서로 다르게 비교합니다. 원시 요소에서는 값을 기준으로 비교하는 반면 개체에서는 변수를 참조 또는 변수가 저장된 메모리에 있는 주소를 기준으로 비교합니다.

 

따라서 첫 번째 console.log 문은 false를 반환하고 두 번째 console.log 문은 true.a를 반환하며 c는 동일한 참조를 가지며 a와 b는 그렇지 않습니다.