우리는 수학 시간에 아래와 같은 다양한 비교 연산자에 대해 학습한 바 있습니다.
자바스크립트에서 기본 수학 연산은 아래와 같은 문법을 사용해 표현할 수 있습니다.
a > b
, a < b
a >= b
, a <= b
a == b
. 등호 =
가 두 개 연달아 오는 것에 유의하세요. a = b
와 같이 등호가 하나일 때는 할당을 의미합니다.≠
는 자바스크립트에선 a != b
로 나타냅니다. 할당연산자 =
앞에 느낌표 !
를 붙여서 표시합니다.이번 글에선 비교 시 일어나는 기이한 현상을 포함하여 다양한 자료형을 대상으로 자바스크립트가 어떻게 비교를 하는지에 대해 다룰 예정입니다.
글 말미에는 자바스크립트에서만 일어나는 ‘기이한’ 현상을 어떻게 예방할 수 있는지에 대해서 언급해두었습니다.
자바스크립트는 '사전’순으로 문자열을 비교합니다. '사전편집(lexicographical)'순 이라고 불리기도 하는 이 기준을 적용하면 사전 뒤쪽의 문자열은 사전 앞쪽의 문자열보다 크다고 판단됩니다.
실제 단어를 사전에 실을 때 단어를 구성하는 문자 하나하나를 비교하여 등재 순서를 정하는 것과 같이 자바스크립트도 문자열을 구성하는 문자 하나하나를 비교해가며 문자열을 비교합니다.
예시:
alert( 'Z' > 'A' ); // true
alert( 'Glow' > 'Glee' ); // true
alert( 'Bee' > 'Be' ); // true
문자열 비교 시 적용되는 알고리즘은 다음과 같습니다.