반응형
JavaScript에서의 일치 연산자는 ===, !== 입니다.
일치 연산자(===)와 동등 연산자(==)의 차이점은 아래와 같습니다.
아래 코드처럼 ==(동등 연산자)는 값을 암묵적으로 형변환을 해줍니다
그렇기에 7 == '7'에 경우 true을 반환하는, 반면에 ===(일치 연산자)를 쓴 7 === '7'는 false를 반환합니다.
console.log(7 === '7');
// false
console.log(7 == '7')
// true
그렇기에 예기치 못한 경우를 피하고 확실하게 조건문을 넣고 싶다면 일치 연산자를 쓰는 게 좋습니다.
일치 연산자를 사용할 때 주의해야 할 경우가 있는데, 아래에 나오는 NaN과 0, -0입니다.
console.log(NaN === NaN);
// false
console.log(0 === -0);
// true
NaN은 유일하게 자기 자신과 일치하지 않는 값으로 NaN인지 알아보고 싶다면 isNaN(변수)를 사용하는 게 좋습니다. NaN이라면 true을 아니라면 false를 반환하는 함수입니다.
또한 0과 -0은 동일한 0이므로 false를 반환합니다.
만약에 NaN === NaN을 ture로 -0 === 0를 false로 반환하는 연산자가 필요하다면 ES6부터 추가된 Object.is를 사용하면 됩니다.
Object.is(NaN,NaN);
// true
Object.is(-0,0);
// false
나머지 타입의 경우는 ===와 동일하게 작동합니다.
반응형