비교 연산자
2022. 12. 28. 16:36ㆍJavascript/TCP school
비교 연산자(comparison operator)
피연산자 사이의 상대적인 크기를 판단하여, 참(true)과 거짓(false)을 반환
두 개의 피연산자를 가지는 이항 연산자
피연산자들의 결합 방향은 왼쪽에서 오른쪽
비교 연산자 | 설명 |
== | 왼쪽 피연산자와 오른쪽 피연산자의 값이 같으면 참을 반환함. |
=== | 왼쪽 피연산자와 오른쪽 피연산자의 값이 같고, 같은 타입이면 참을 반환함. |
!= | 왼쪽 피연산자와 오른쪽 피연산자의 값이 같지 않으면 참을 반환함. |
!== | 왼쪽 피연산자와 오른쪽 피연산자의 값이 같지 않거나, 타입이 다르면 참을 반환함. |
> | 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 크면 참을 반환함. |
>= | 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 크거나 같으면 참을 반환함. |
< | 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 작으면 참을 반환함. |
<= | 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 작거나 같으면 참을 반환함. |
피연산자의 타입에 따라 두 가지 기준으로 비교
1. 피연산자가 둘 다 숫자면, 해당 숫자를 서로 비교
2. 피연산자가 둘 다 문자열이면, 문자열의 첫 번째 문자부터 알파벳 순서대로 비교합
var x = 3, y = 5;
var a = "abc", b = "bcd";
document.write((x > y) + "<br>"); // y의 값이 x의 값보다 크므로 false
document.write((a <= b) + "<br>"); // 알파벳 순서상 'a'가 'b'보다 먼저 나오므로 'a'가 'b'보다 작음. true
document.write(x < a); // x의 값은 숫자이고 a의 값은 문자열이므로 비교할 수 없음. false
타입이 서로 달라 비교할 수 없는 경우 - 거짓(false)
동등 연산자와 일치 연산자
동등 연산자(==, equal), 일치 연산자(===, strict equal) - 두 개의 피연산자가 서로 같은지를 비교
피연산자의 타입을 가리지는 않지만, 그 같음을 정의하는 기준이 조금 다름
동등 연산자(==)
두 피연산자의 값이 서로 같으면 참(true)을 반환
타입이 서로 다르면, 비교를 위해 강제로 타입을 같게 변환
일치 연산자(===)
타입의 변환 없이 두 피연산자의 값이 같고, 타입도 같아야만 참(true)을 반환
var x = 3, y = '3', z = 3;
document.write((x == y) + "<br>"); // x와 y의 타입이 서로 다르므로 타입을 서로 같게 한 후 비교를 하므로 true
document.write((x === y) + "<br>"); // x와 y의 타입이 서로 다르므로 false
document.write(x === z); // x와 z은 값과 타입이 모두 같으므로 true
부등 연산자(!=)와 불일치 연산자(!==)는 각각 동등 연산자와 일치 연산자의 비교와 정확히 반대로 동작
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>JavaScript Operators</title>
</head>
<body>
<h1>동등 연산자와 일치 연산자</h1>
<script>
var x = 3, y = '3', z = 3;
document.write((x != y) + "<br>"); // x와 y의 타입이 서로 다르므로 동등 연산자는 타입을 서로 같게 한 후 비교를 하게 됨. true
document.write((x !== y) + "<br>"); // x와 y의 타입이 서로 다르므로 false
document.write(x !== z); // x와 z은 값과 타입이 모두 같으므로 true
</script>
</body>
</html>
동등 연산자와 일치 연산자
참고
http://www.tcpschool.com/javascript/js_operator_comparison
'Javascript > TCP school' 카테고리의 다른 글
비트 연산자 (0) | 2022.12.28 |
---|---|
논리 연산자 (0) | 2022.12.28 |
증감 연산자 (0) | 2022.12.28 |
대입 연산자 (0) | 2022.12.28 |
산술 연산자 (0) | 2022.12.28 |