[JavaScript] 비교 연산자(comparison operator)

2022. 6. 30. 02:45·Language/JavaScript
728x90

비교 연산자(comparison operator)

비교 연산자는 피연산자 사이의 상대적인 크기를 판단하여, 참(true)과 거짓(false)을 반환한다.

비교 연산자는 모두 두 개의 피연산자를 가지는 이항 연산자이며, 피연산자들의 결합 방향은 왼쪽에서 오른쪽이다.

비교 연산자 설명
== 왼쪽 피연산자와 오른쪽 피연산자의 값이 같으면 참을 반환함.
=== 왼쪽 피연산자와 오른쪽 피연산자의 값이 같고, 같은 타입이면 참을 반환함.
!= 왼쪽 피연산자와 오른쪽 피연산자의 값이 같지 않으면 참을 반환함.
!== 왼쪽 피연산자와 오른쪽 피연산자의 값이 같지 않거나, 타입이 다르면 참을 반환함.
> 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 크면 참을 반환함.
>= 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 크거나 같으면 참을 반환함.
< 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 작으면 참을 반환함.
<= 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 작거나 같으면 참을 반환함.

피연산자가 둘 다 숫자면, 해당 숫자를 서로 비교한다.

피연산자가 둘 다 문자열이면, 문자열의 첫 번째 문자부터 알파벳 순서대로 비교한다.

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'보다 작음.
document.write(x < a);		// x의 값은 숫자이고 a의 값은 문자열이므로 비교할 수 없음.
실행 결과
false
true
false

위의 세 번째 연산에서 변수 x의 값은 숫자이고, 변수 a의 값은 문자열이다.

비교 연산자 < 는 x의 값이 a의 값보다 작을 때만 참을 반환하고, 나머지 경우에는 전부 거짓을 반환하는 연산자다.

따라서 타입이 서로 달라 비교할 수 없는 경우에는 참의 조건을 만족하게 하지 못하므로, 언제나 거짓(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
실행 결과
true
false
true
※ 부등 연산자(!=)와 불일치 연산자(!==)는 각각 동등 연산자와 일치 연산자의 비교와 정확히 반대로 동작한다.

'Language > JavaScript' 카테고리의 다른 글

[JavaScript] 비트 연산자(bitwise operator)  (0) 2022.06.30
[JavaScript] 논리 연산자(logical operator)  (0) 2022.06.30
[JavaScript] 증감 연산자(increment and decrement operator)  (0) 2022.06.30
[JavaScript] 대입 연산자(assignment operator)  (0) 2022.06.30
[JavaScript] 산술 연산자  (0) 2022.06.30
'Language/JavaScript' 카테고리의 다른 글
  • [JavaScript] 비트 연산자(bitwise operator)
  • [JavaScript] 논리 연산자(logical operator)
  • [JavaScript] 증감 연산자(increment and decrement operator)
  • [JavaScript] 대입 연산자(assignment operator)
arajo
arajo
  • arajo
    아라 메모장
    arajo
  • 전체
    오늘
    어제
    • 분류 전체보기 (509)
      • Language (298)
        • HTML (55)
        • CSS (11)
        • JavaScript (70)
        • TypeScript (8)
        • Python (33)
        • Java (119)
        • C (0)
        • C# (2)
      • Programming (92)
        • Programming (14)
        • Web (51)
        • Apache (1)
        • MySQL (23)
        • AWS (3)
      • Framework | Library (26)
        • Framework | Library (3)
        • Vue.js (2)
        • React.js (5)
        • React Native (4)
        • Node.js (1)
        • Ajax (1)
        • Bootstrap (8)
        • Spring (1)
        • Flutter (1)
      • etc (2)
      • 휴식 (19)
        • 책 (13)
        • 일기 (5)
        • 게임 일기 (1)
      • A (71)
        • 공부 (18)
        • 기타 (6)
        • 일 (47)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Java
    객체
    array
    타입스크립트
    HTML
    object
    Python
    event
    CSS
    TypeScript
    파이썬
    변수
    react
    web
    next.js
    JavaScript
    MySQL
    제어문
    리액트
    자바스크립트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
arajo
[JavaScript] 비교 연산자(comparison operator)
상단으로

티스토리툴바