# 동등/일치 비교 연산자
1. 동등 비교 연산자 : ==, !=
1) '값'만 비교 한다.
2) '타입' 일치 여부는 체크하지 않는다.
=> 암묵적 타입 변환이 발생해서 결과를 예측하기가 힘들다.
console.log(1 == '1'); // true
console.log(0 == ''); // true
console.log(true == 'true') // false
console.log(NaN == NaN); // false
// 경우에 따라 숫자는 타입이 변환 되고, 불리언은 안되고, 실수하기 쉽다.
2. 일치 비교 연산자 : ===, !==
1) '값'과 '타입'까지 일치해야만 true를 반환한다.
2) NaN은 체크하지 못한다. isNaN(값) 함수로 체크 필요.
console.log(1 === '1'); // false
console.log(0 === ''); // false
console.log(true === 'true') // false
console.log(NaN === NaN); // false
console.log(isNaN(NaN)); // true
3. Object.is(값1, 값2)
1) '값'과 '타입'이 일치해야만 true를 반환 (===, !== 일치 연산자와 동일)
2) NaN도 체크할 수 있다.
=> ES6부터 도입된 메서드.
console.log(Object.is(1, '1')); // false
console.log(Object.is(0, '')); // false
console.log(Object.is(true, 'true')); // false
console.log(Object.is(NaN, NaN)); // true
# 결론
1. ===, !== 일치 연산자를 쓰자.
* 단, NaN은 isNaN(값)으로 체크하자.
2. Object.is(값1, 값2)를 쓰는 것도 좋다.
3. ==, != 동등 연산자는 가급적 쓰지 말자.
# (참고) 대소 관계 비교 연산자
1. x > y : x가 더 크다.
2. x < y : x가 더 작다.
3. x >= y : x가 더 크거나 같다.
4. x <= y : x가 더 작거나 같다.
'개발(Development) > JS(자바스크립트)' 카테고리의 다른 글
[자바스크립트] HTML 테이블(table) 행 추가 불가 이유, 해결 방법 (0) | 2021.01.05 |
---|---|
[자바스크립트] 반복문 총정리: for in, for of, forEach 등 (0) | 2020.12.12 |
[자바스크립트] 실행 환경 ECMA Script, Web API, Node.js (2) | 2020.12.10 |
[자바스크립트] 문자열 여러번 반복 생성 방법 2가지 (0) | 2020.12.04 |
[자바스크립트] 논리연산자(&&, ||) 단축평가 (2) | 2020.10.15 |
댓글