일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- boj
- 플로이드-워셜
- 정렬
- SSAFY
- 세그먼트 트리
- 맵
- 누적 합
- 그리디
- 2357
- 문자열
- 정수론
- 브루트포스
- JavaScript
- DFS
- 수학
- 이분 탐색
- 싸피
- Python
- 애드 혹
- 13164
- 해시 테이블
- 트리
- 그래프
- DP
- 투 포인터
- BFS
- 구현
- 슬라이딩 윈도우
- 모던 JavaScript 튜토리얼
- 에라토스테네스의 체
- Today
- Total
흙금이네 블로그
[자바스크립트 기본] 09. 비교 연산자 본문
자바스크립트의 비교 연산자는 보다 큼(>), 작음(<), 크거나 같음(>=), 작거나 같음(<=), 같음(==), 같지 않음(!=)이 있다.
비교 연산자의 반환값은 불린형으로, 변수에 할당할 수 있다.
true가 반환되면 긍정, 참, 사실을 의미하고, false가 반환되면 부정, 거짓 사실이 아님을 의미한다.
alert(2 > 1); // true
alert(2 == 1); // false
alert(2 != 1); // true
let result = 3 > 4;
alert(result); // false
문자열은 유니코드 순으로 비교하며, 유니코드 순으로 인덱스가 더 큰 문자열이 더 크다고 판단된다.
두 문자열의 글자들을 차례로 비교하여 글자가 더 크거나 작은 문자열이 다른 문자열보다 크거나 작다고 판단되고,
비교가 끝날 때까지 결론이 나지 않으면 길이가 더 긴 문자열이 더 큰 것으로, 길이가 같다면 두 문자열은 같다고 판단된다.
alert('Z' > 'A'); // true
alert('Glow' > 'Glee'); // true
alert('Bee' > 'Be'); // true
비교하는 두 값의 자료형이 다르면 이를 숫자형으로 변환하여 비교한다.
alert('2' > 1); // true, 문자열 '2'를 숫자 2로 변환
alert('01' == 1); // true, 문자열 '01'을 숫자 1로 변환
alert(true == 1); // true, 불린형 true를 숫자 1로 변환
alert(false == 0); // true, 불린형 false를 숫자 0으로 변환
alert(2 == true); // false, 불린형 true를 숫자 1로 변환
Boolean을 사용한 명시적 변환에는 다른 규칙이 사용된다.
let a = 0;
alert(Boolean(a)); // false
let b = '0';
alert(Boolean(b)); // true
alert(a == b); // true
형 변환이 일어나는 동등 연산자(==)와 달리 일치 연산자(===)는 형 변환 없이 값을 비교할 수 있다.
alert(0 === false); // false
null과 undefined는 일치 연산자를 사용하여 비교하면 거짓이 반환되고 동등 연산자를 사용하여 비교하면 참이 반환된다.
alert(null === undefined); // false
alert(null == undefined); // true
산술 연산자나 기타 비교 연산자를 사용하여 null과 undefined를 비교할 때, null은 0, undefined는 NaN으로 변환된다.
그러나 동등 연산자를 사용할 때는 null과 undefined의 형을 변환하지 않는다(null과 undefined 비교 시에만 true 반환).
alert(null > 0); // false
alert(null >= 0); // true
alert(null == 0); // false
undefined를 다른 값과 비교하면 NaN으로 변환되는데, NaN이 피연산자일 때 비교 연산자는 항상 false를 반환한다.
alert(undefined > 0); // false
alert(undefined < 0); // false
alert(undefined == 0); // false
따라서 명확한 의도 없이 일치 연산자를 제외한 비교 연산자의 피연산자에 null이나 undefined가 오지 않도록 하고,
null이나 undefined가 될 수 있는 변수가 >, <, >=, <=와 같은 비교 연산자의 피연산자가 되지 않도록 주의해야 한다.
참고
'TIL > JavaScript' 카테고리의 다른 글
[자바스크립트 기본] 08. 기본 연산자와 수학 (0) | 2023.02.11 |
---|---|
[자바스크립트 기본] 07. 형 변환 (0) | 2023.01.16 |
[자바스크립트 기본] 06. alert, prompt, confirm을 이용한 상호작용 (0) | 2023.01.11 |
[자바스크립트 기본] 05. 자료형 (0) | 2023.01.11 |
[자바스크립트 기본] 04. 변수와 상수 (0) | 2023.01.10 |