동등연산자(==) Equality
는 두개의 피연산자가 동일한지 확인합니다. 반환값은 boolean
타입입니다. 피연산자 각각의 자료형이 다르면 비교하기전 동일한 타입으로 자동 변환하여 같은 타입이라 간주하고 비교를 진행합니다.
일치연산자(===) Strict equality
도 두개의 피연산자가 동일한지 확인하고, boolean
타입을 반환하지만 동등 연산자와는 달리 피연산자들의 자료형(Type)까지 비교하여 같아야지만 true를 반환합니다. 일치연산자는 타입변환을 시도하지 않습니다.
console.log(1 == '1'); // true
console.log(1 === '1'); // false
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
동일 객체를 참조하기 때문
레퍼런스: