NaN == NaN //false
NaN은 NaN끼리 비교할 때 숫자, 문자열, 불 값을 통틀어 false 값을 가지는 유일한 값
즉, NaN은 비교 연산에서 false를 출력하고 다만, != 연산에서만 true 값을 출력함
true>false //true
불 값에서 사실상 true는 1, false는 0을 뜻하기 때문
'b'>'a' //true
b가 a보다 문자 번호가 크기 때문(b는 98, a는 97)(특수문자 또한 고유 문자 번호를 가지고 있기때문에 비교 가능)
'ad'>'ab' //true
첫 문자인 a가 서로 같으므로 다음 문자를 비교, b와 d 중에서 d가 값이 더 큼(d는 100)
'ab'>'a' //true
첫 문자가 a로 같으므로 두 번째 문자끼리 비교, ab에서 두 번째 문자는 b지만, a에는 두 번째 문자가 없음. 이 경우 다음 문자가 존재하는 문자열의 값이 더 큼
참고
문자의 번호 알아보기
문자의 번호를 알아보려면 charCodeAt을 사용.
찾고자 하는 문자열 뒤에 .charCodeAt()을 붙이면 문자의 번호가 나옴
'3'<5 //true
빼기 연산자 때처럼 다른 자료형이 모두 숫자로 형 변환된 후 비교하기 때문
'abc'<5 //false
문자열 abc를 숫자로 바꾸면 NaN이 되고 NaN과의 비교는 false이므로 결과값이 false
불 값 또한, 비교 연산을 할 때는 숫자로 형 변환됨
'0'<true //true
문자열 0도 숫자 0으로 형 변환되고, true도 숫자 1로 형 변환되기 때문