Loose equality, with type conversion (==) (변수의 값만 비교)
const stringFive = '5';
const numberFive = 5;
console.log(stringFive == numberFive); // true
console.log(stringFive != numberFive); // false
Strict, no type conversion (===) (변수의 타입과 값을 비교)
const stringFive = '5';
const numberFive = 5;
console.log(stringFive === numberFive); // false
console.log(stringFive !== numberFive); // true
Object equality by reference
const ellie1 = { name: 'ellie' };
const ellie2 = { name: 'ellie' };
const ellie3 = ellie1;
console.log(ellie1 == ellie2); // false
console.log(ellie1 === ellie2); // false
console.log(ellie1 === ellie3); // true
// ellie1 - ref1 (name: ellie)
// ellie2 - ref2 (name: ellie)
// ellie3 - ref1 (name: ellie)
// -> 객체는 주소값을 반환하기 때문이다.
확인
console.log(0 == false); // ture
console.log(0 === false); // false
console.log('' == false); // true
console.log('' === false); // false
console.log(0 == ''); // true
console.log(null == undefined); // true
console.log(null === undefined); // false