동등 연산자(==, equal)와 일치 연산자(===, strict equal)는 모두 두 개의 피연산자가 서로 같은지를 비교해 주는 비교 연산자 입니다.
두 연산자 모두 피연산자의 타입을 가리지는 않지만, 비교하는 엄격성의 정도가 조금 다릅니다.
동등 연산자는 느슨한 비교를 하지만 일치 연산자는 엄격한 비교를 합니다
동등 연산자(==)는 두 피연산자의 값만 비교합니다. 따라서 값이 서로 같으면 참(true)을 반환합니다.
이때 두 피연산자의 타입이 서로 다르면, 비교를 위해 강제로 타입을 같게 변환하는 암묵적 타입 변환을 통해 타입을 일치시킨 후 같은 값인지 비교합니다.
console.log(1 == 1); // true
console.log('hello' == 'hello'); // true
console.log('1' == 1); // true
console.log(0 == false); // true
일치 연산자(===)는 타입의 변환 없이 두 피연산자의 값과 타입을 모두 비교합니다. 따라서 값이 같고, 타입도 같아야만 참(true)을 반환합니다.
console.log(1 === 1); // true
console.log('hello' === 'hello'); // true
console.log('1' === 1); // false
console.log(0 === false);// false