9. 비교연산자

비교 연산자

비교연산자의 종류는 아래와 같다.

===, !==, <, >, <=, >=, !

비교 연산자도 연산자이기 때문에 값을 반화한다.
반환 값은 boolean Type이다.

  • true
  • false
console.log(10 > 0);  // true
console.log(10 === 9); // false
console.log(!10 < 9); // true

let result = 10 > 9;
console.log(result) // true;

문자열 비교

자바스크립트의 문자열은 비교를 할 수 있다.
그 기준은 유니코드 순서이다. 즉
a -> z순서
A -> Z순서로 크기가 커진다.
문자를 유니코드로 변환시 어떠한 값으로 나오는데
알파벳이나 문자는 이 유니코드가 뒤로갈수록 커진다.

console.log('g' > 'a'); // true
console.log('hello' > 'hella'); // true
console.log('Banana' > 'Banan'); // true

위의 코드를 본다면
'g'는 'a'보다 알파벳 순서로 뒤에 있으니 보다 큰 문자이다.

'hello'와 'hella'는 한글자씩 비교를 한다.
1 -> 'h','h'
2 -> 'e','e'
...
5 -> 'o','a'
'o'는 'a'보다 큰 문자여서 true!

마지막으로 길이가 다른 문자는 하나씩 비교해서 하나의 문자가
끝날때까지 비교를 한다면 길이가 더 긴 문자가 큰 문자가 된다.
물론 중간에 유니코드로 비교시 더 큰 문자가 존재한다면 길이와 상관없이 사전적으로 큰 문자가 크다고 나오게 된다.
그래서 3번은 true!

일치 연산자

우리가 보통 같다라는 의미를 가질때는 '='이라는 기호를 사용한다.
하지만 자바스크립트에서 '='은 할당의 의미를 가지는데...
그럼 일치비교를 하는 연산자는 무엇인가?
일치 -> ===
불일치 -> !==

console.log('a' === 'a') //true
console.log('3' === 3) // false;

위와 같이 타입과 그 값이 같아야지 true를 반환한다.

그리고 일치 불일치와 비슷한 연산자가 존재하는데
'==' 와 '!='이다.
이 연산자는 서로의 타입을 무시한채 피연산자들을 숫자형으로 변환하여 비교한다.

console.log('3' == 3); // true
console.log('' == false); // true

위와 같이 피연산자들을 숫자형으로 바꾸어 연산하기때문에
'3'은 3으로 변환하여 3 == 3으로 되고,
'' 와 false는 각각 0으로 변환되어 0 == 0이 되어버린다.

이러한 특성을 잘 이용하여 두가지 비교를 구분하여 사용해야될것같다.

좋은 웹페이지 즐겨찾기