본문 바로가기
💻 하나씩 차곡차곡/Front-end

[자바스크립트/Javascript] 문자 형태로 된 숫자 끼리 비교가 가능한가에 대하여

by 뚜루리 2024. 4. 25.
728x90
320x100
자바스크립트로 간단한 비교문을 짜다보니
문득 애매하게 알고 가는 개념인 것 같아 확실히 정리해두려고 쓰는 글.

 

1. 문자형태로 된 숫자끼리 대소 비교가 가능한지에 대해서

1번을 알아보려면 먼저 2가지 예시가 필요하다.

1) 첫번째 예시

let num1 = '1';
let num2 = '2';

여기서 num1 < num2 의 값은 ture가 된다.  숫자 대소 비교가 되는 것 같다. 그럼 아래의 예시에서는 어떨까. 

 

2) 두번째 예시

let num1 = '5';
let num2 = '10';

여기서 num1 < num2 의 밗은 false가 된다. 예시 1번에서는 대소 비교가 되는 것 같지만, 두번째 예시를 보니 그렇지 않은 것 같다. 

 

당연히 문자로 판단되기 때문에 비교가 안되는 것이다. 근데 그럼 첫번째 예시는 왜 대소비교가 된것 처럼 보였을까.

이유는 간단하다.  '1', '2' 를 문자형태로 오름차순 정렬하면 1', '2' 순이된다. 그래서 '2'가 문자형태에서는 더 큰 값으로 인식된다. 

그런데 '5', '10'을 문자형태로 오름차순정렬하면 '10', '5' 이다. 여기선 '5'가 더 큰값으로 인식된다. 

 

결론은 문자형태의 숫자가 대소비교가 되는 것처럼 보였지만,

정확한 대소비교를 하는 것은 아니라는 걸 알 수 있음. 

 

728x90
320x100