큼 작음 >,<
크거나, 작거나 같음 : >= , <=
같음 : ==
같지 않음 : !=
불린형 반환
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를 다른 값과 비교해서는 안된다.
'자바 스크립트' 카테고리의 다른 글
자바스크립트 논리 연산자 (0) | 2020.12.02 |
---|---|
자바스크립트 if와 ?를 사용한 조건처리 (0) | 2020.12.02 |
자바스크립트 형 변환 (0) | 2020.12.02 |
자바스크립트 상호작용(alert,prompt,confirm) (0) | 2020.12.02 |
자바스크립트 자료형 (0) | 2020.12.02 |
댓글