본문 바로가기
자바 스크립트

자바스크립트 비교 연산자

by y00ns00 2020. 12. 2.

큼 작음 >,<

크거나, 작거나 같음 : >= , <=

같음 : ==

같지 않음 : !=

 

불린형 반환

true가 반환 : '긍정','참','사실'을 의미

false 가 반환 '부정','거짓',사실이 아님'

 

문자열 비교

자바스크립트는 사전순으로 문자열을 비교한다.(사전편집 순 이라고 불리기도 한다)

 

문자열 비교시 적용되는 알고리즘

1. 두 문자열의 첫글자를 비교

2. 첫 번째 문자열의 첫 글자가 다른 문자열의 첫 글자보다 크면(작으면), 첫 번째 문자열이 두번째 문자열보다 크다고(작다고) 결론 내고 비교를 종료

3. 두 문자열의 첫 글자가 같으면 두 번째 글자를 같은 방식으로 비교

4. 글자 간 비교가 끝날 때까지 이 과정을 반복

5. 비교가 종료되었고 문자열의 길이도 같다면 두 문자열은 동일하다고 결론

 

# 정확히는 사전순이 아니라 유니코드순서이다.

(자바스크립트는 대,소문자를 따진다.)

 

다른 형을 가진 값 간의 비교

비교하려는 값의 자료형이 다르면 자바스크립트는 이 값들을 숫자형으로 바꾼다.

#불린값의 경우 true 는 1 false는 0 으로 변환된 후 비교가 이루어 진다.

 

 

일치 연산자

동등 연산자(==) 는 0과 false를 구별하지 못한다.

이런 문제는 동등 연산자 ==가 형이 다른 피연산자를 비교할 때 피연산자를 숫자형으로 바꾸기 때문에 발생

( 빈문자열과 false는 숫자형으로 변환하면 0 이 된다)

일치연산자 === 를 사용하면 형 변환 없이 값을 비교할 수 있다.( 엄격한 동등 연산자 자료형의 동등 여부까지 검사)

 

 

 

null 이나 undefined 비교

null 이나 undefined를 다른 값과 비교할 땐 예상치 않은 일들이 발생

 

- 일치 연산자 ===를 사용하며 null과 undefined 비교

두값의 자료형이 다르기 때문에 일치 비교시 거짓이 반환

 

- 동등 열산자 ==를 사용하여 null과 undefined를 비교

동등 연산자를 사용해 비교하면 특별한 규칙이 적용돼 true가 반환 

 

null vs 0

alert( null > 0 );  // (1) false
alert( null == 0 ); // (2) false
alert( null >= 0 ); // (3) true

동등 연산자 == 와 기타 비교연산자 > < >= <= 의동작 방식이 다르기 때문 

null >= 0 이 참을 반환하는 이유는 (기타 비교 연산자의 동작 원리에 따라) null이 숫자형으로 반환돼 0 이되기 때문

하지만 동등 연산자 ==는 피연산자가 undeined나 null 일 때 형변환을 하지 않는다 

undefined와 null을 비교하는 경우에만 true를 반환하고 그 이외의 경우(null이나 undefined를 다른 값과 비교할 때)는 무조건 false를 반환한다.

 

비교가 불가능한 undefined 

undefined를 다른 값과 비교해서는 안된다.

댓글