[JS] ==와 === 비교
==
: loose equality, 타입이 달라도 같다고 판단.
console.log('5' == 5) // true
console.log('5' === 5) // false
===
: strict equality, 타입까지 같아야 같다고 판단.
-
===
는 특히 object의 비교에서 유의해야 한다. -
object끼리의 비교는 내용물이 아닌,
reference
로 비교한다.
const hong1={name: 'hong'};
const hong2={name: 'hong'};
const hong3=hong1;
console.log(hong1==hong2); //false
console.log(hong1===hong2); //false, ==가 false인데 ===가 같을수가 있나!
console.log(hong1==hong3); //true
console.log(hong1===hong3); //true
- hong1과 hong2는 내용물은 같지만 따로 생성된 object이므로 저장된 reference가 다르므로 두 equality 모두 false.
- hong3은 hong1에 저장된 reference를 그대로 저장하게 되므로
==
,===
모두 true.
Author And Source
이 문제에 관하여([JS] ==와 === 비교), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@awesome-hong/JS-와-비교저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)