Javascript의 동등연산자(==)와 일치연산자(===)

HaByungNo·2022년 7월 19일
0
post-custom-banner

개요

동등연산자(==) Equality 는 두개의 피연산자가 동일한지 확인합니다. 반환값은 boolean 타입입니다. 피연산자 각각의 자료형이 다르면 비교하기전 동일한 타입으로 자동 변환하여 같은 타입이라 간주하고 비교를 진행합니다.

일치연산자(===) Strict equality 도 두개의 피연산자가 동일한지 확인하고, boolean 타입을 반환하지만 동등 연산자와는 달리 피연산자들의 자료형(Type)까지 비교하여 같아야지만 true를 반환합니다. 일치연산자는 타입변환을 시도하지 않습니다.

console.log(1 == '1');  // true

console.log(1 === '1'); // false

객체(object)간 비교

const object1 = {
  name: "hello"
}
const object2 = {
  name: "hello"
}
console.log(object1 == object2);  // false
console.log(object1 === object2);  // false

console.log(object1 == object1);  // true
console.log(object1 === object1);  // true

동일연산자와 일치연산자 모두, 두개의 피연산자 모두 객체라면, 객체로써 비교가 이루어지기 때문에 같은 객체를 참조하고 있어야만 true 를 반환한다.

Quiz)

const d = new Date('December 17, 1995 03:24:00');
const s = d.toString(); // ex) "Sun Dec 17 1995 03:24:00 GMT-0800 (Pacific Standard Time)"
console.log(d == s);    // true or false ?

정답은 true
동일 객체를 참조하기 때문


레퍼런스:

profile
프라고
post-custom-banner

0개의 댓글