다른 연산자와 마찬가지로 비교 연산자 역시 값을 반환. 반환값은 불린형
js는 사전순(정확히는 유니코드)으로 문자열 비교. 사전 뒤쪽의 문자열은 사전 앞쪽의 문자열 보다 크다고 판단.
문자열 비교 시 적용되는 알고리즘.
1. 두 문자열의 첫글자를 비교.
2. 첫번째 문자열의 첫 글자가 다른 문자열의 첫글자보다 크면(작으면), 첫 번째 문자열이 두번째 문자열보다 크다고(작다고) 결론 내교 비교종료
3. 두 문자열의 첫 글자가 같으면 두번째 글자를 같은 방식으로 비교.
4. 글자 간 비교가 끝날 때 까지 이 과정을 반복
5. 비교가 종료되었고 문자열의 길이도 같다면 두 문자열은 동일하다고 결론. 비교가 종료되었지만 두 문자열의 길이가 다르면 길이가 긴 문자열이 더 크다고 결론.
alert('2'>1); // true, 문자열 '2'가 숫자 2로 변환된 후 비교가 진행.
alert('01'==1); //true, 문자열 '01'이 숫자 1로 변환된후 비교가 진행.
불린값의 경우 true는 1, false는 0으로 변환된후 비교가 이뤄짐.
alert(0==false); //true
//동등연산자 ==는 0과 false 구별 X
alert(''==false); //true
//피연산자가 빈 문자열 일때도 같은 문제 발생
일치연산자 === 를 사용하면 형변환 없이 값을 비교 할수있다.
자료형의 동등여부까지 검사하기 때문에, 피연산자 a와 b의 형이 다를경우 a===b는 false를 즉시 반환
alert(null===undefined); //false
일치 연산자 ===를 사용하여 비교하기
alert(null==undefined); //true
동등연산자 == 를 사용하여 비교하기
산술연산자나 기타비교연산자를 사용하여 비교하면 null은 0, undefined는 NaN으로 변한다.
그래서 null>=0 // true , undefined는 비교 불가