일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Trie
- Brute Force
- Hash
- Dijkstra
- String
- SQL
- Stored Procedure
- MYSQL
- union find
- 스토어드 프로시저
- 이진탐색
- binary search
- Two Points
- 그래프
- DP
- two pointer
- 다익스트라
Archives
- Today
- Total
codingfarm
비교 연산자(Comparison Operator) 본문
비교 연산자 | 의미 | 사례 | 설명 |
== | 동등 비교 | x == y | x와 y의 값이 같음 |
=== | 일치 비교 | x === y | x와 y의 값과 타입이 같음 |
!= | 부동등 비교 | x != y | x와 y의 값이 다름 |
!== | 불일치 비교 | x !== y | x와 y의 값과 타입이 다름 |
- 타입은 개발자의 의도와 상관없이 JS에 의해 변환되기도 한다.(암묵적 타입 변환)
- 동등비교(==) 연산자는 좌항과 우항의 피연산자를 비교할 때 먼저 암묵적 타입 변환을 통해 타입을 일치시킨 후 같은 값인지 비교한다.
//동등 비교
5 == 5; // true
// 타입은 다르지만 암묵적 타입 변환을 통해 타입을 일치시키면 동등하다.
5 == '5'; //true
- 암묵적 형변환은 결과를 예측하기 어렵게 만들기도 한다.
- 아래는 안티패턴이므로 가능하면 쓰지 말자
'0' == ''; // false
0 == '' ; // true
0 == '0'; // true
false == 'false'; // false
false == '0'; // true
false == null; // false
false == undefined; // false
- 동등비교 연산자 대신 가급적 일치 비교(===)를 쓰도록 하자.
- 일치비교연산에서 NaN 타입을 주의해야한다.
- NaN은 자신과 일치하지 않는 유일한 값이다.
NaN === NaN; // false
- 숫자 0은 양과 음의 0이 있으며 이들을 비교하면 true를 반환한다.
0 === -0; // true
0 == -0; // true
Object.is 메서드
- ES6에서 도입된 Object.is 메서드는 예측 가능한 정확한 비교 결과를 반환한다.
-0 === +0; // true
Object.is(-0, +0); // false
NaN === NaN; // false
Object.is(NaN, NaN); // true
typeof 연산자
- typeof 연산자는 피 연산자의 데이터 타입을 문자여로 반환한다.
- 7가지 문자열 string, number, boolean, undefined, symbol, object, function 중 하나를 반환한다.
- null을 반환하는 경우는 없다.
- typeof가 반한하는 타입과 실제 타입이 100% 일치하지는 않는다.
typeof '' // string
typeof 1 // number
typeof NaN // number
typeof true // boolean
typeof undefined // undefined
typeof Symbol() // symbol
typeof null // object
typeof [] // object
typeof {} // object
typeof new Date() // object
typeof /test/gi // object
typeof function () {} // function
'Programming Language > JavaScript' 카테고리의 다른 글
원시 값과 객체의 비교 (0) | 2021.02.17 |
---|---|
객체 리터럴 (0) | 2020.11.15 |
데이터 타입(Data Type) (0) | 2020.11.14 |
표현식과 문(expression and statement) (0) | 2020.11.14 |
변수(Variable) (0) | 2020.11.14 |
Comments