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
'💻 하나씩 차곡차곡 > Front-end' 카테고리의 다른 글
[자바스크립트/Javascript] praseInt() VS Number() (0) | 2024.04.25 |
---|---|
[Javascript/ES06] 템플릿 리터럴 ``(백틱) 사용법 (0) | 2023.10.24 |
[javascript] debugger; 사용법 (0) | 2023.04.30 |
[Javascript] substr() VS substring() vs slice() (0) | 2023.04.29 |
[자바스크립트/Javascript] 자식창 값 부모창에 전달하기 (0) | 2023.04.21 |