반응형
비교연산자
a > b 보다 큼, 작음
a >= b, a <= b 크거나같음, 작거나같음
a == b 같음(동등)
a !=b 같지않음
- <주의> a = b 는 할당을 의미한다.
불린형 반환
다른 연산자와 마찬가지로 비교 연산자 역시 값을 반환하는데, 반환 값은 불린형이다.
- true가 반환되면, 긍정, 참, 사실을 의미한다.
- false가 반환되면, 부정, 거짓, 사실이 아님을 의미한다.
alert( 2 > 1 ); // true
alert( 2 == 1 ); // false
alert( 2 != 1 ); // true
- 반횐된 불린값은 다른 값처럼 변수에 할당 할 수 있다.
let result = 5 > 4; // 비교 결과를 변수에 할당
alert( result ); // true
문자열비교
자바스크립트는 유니코드순으로 문자열을 비교한다.
문자열을 구성하는 문자 하나하나를 비교해가며 문자열을 비교한다.
alert( 'Z' > 'A' ); // true
alert( 'Glow' > 'Glee' ); // true
alert( 'Bee' > 'Be' ); // true
- 두 문자의 첫글자를 비교해 첫 글자가 다른 문자열의 첫 글자보다 크거나작으면 결론을 내고 비교 종료
- 두 문자열의 첫 글자가 같으면 두 번째 글자를 같은 방식으로 비교, 이 과정을 반복한다.
- 비교가 끝나고 문자열의 길이도 같다면 동일하다는 결론을 내고, 문자열의 길이가 다르면 길이가 긴 문자열이
더 크다고 결론을 낸다.
다른 자료형을 가진 값 비교
비교하려는 값의 자료형이 다르면 이 값들을 숫자형으로 바꿔준다.
alert( '2' > 1 ); // true, 문자열 '2'가 숫자 2로 변환된 후 비교가 진행됩니다.
alert( '01' == 1 ); // true, 문자열 '01'이 숫자 1로 변환된 후 비교가 진행됩니다.
- 불린값의 경우 true는 1, false는 0으로 변환된 후 비교가 이뤄진다.
alert( true == 1 ); // true
alert( false == 0 ); // true
일치 연산자
일치연산자는 엄격한 동등 연산자이다. 자료형의 동등 여부까지 검사하기 때문에
피연산자 a와 b의 형이 다를경우 a===b는 즉시 false를 반환한다.
alert( 0 === false ); // false, 피연산자의 형이 다르기 때문입니다.
- 불일치 엄격 연산자 !==
[ 주의 ]
동등 연산자 ==는 0과 false를 구별하지 못한다.
alert( 0 == false ); // true
alert( '' == false ); // true
- 형이 다른 피연산자를 비교할때 숫자로 바꾸기 때문이다.
null, undefined 비교하기
alert( null === undefined ); // false
alert( null == undefined ); // true
- 두 값의 자료형이 다르기 때문에 일치 비교 시 거짓 반환
- 동등 연산자에서는 특별한 규칙이 적용돼 true가 반환
null vs 0
alert( null > 0 ); // (1) false
alert( null == 0 ); // (2) false
alert( null >= 0 ); // (3) true
- 비교연산자는 null이 숫자형으로 변한되어 0이 된다.
- 동등연산자 ==는 undefined, null일때 형변환을 하지 않는다. (undefined와 null을 비교하는 경우에만 true)
비교가 불가능한 undefined
undefined는 다른 값과 비교하면 안된다.
alert( undefined > 0 ); // false (1)
alert( undefined < 0 ); // false (2)
alert( undefined == 0 ); // false (3)
- (1), (2) 에서 undefined는 NaN으로 변환되는데, NaN이 피연산자인 경우 비교 연산자는 항상 false를 반환
TIP
null이나 undefined이 될 확률이 있는 변수는 비교연산자 > 또는 < 의 피연산자로 올때 주의해야하고
null이나 undefined의 여부를 확인하는 코드를 따로 추가하기를 권장
반응형