parseInt()와 Number()의 차이

Blackwidow·2020년 11월 30일
30

본인은 parseInt와 Number를 구별하지 않고 문자열을 숫자로 바꿀때 사용했다. 하지만 사용하면서 두개의 차이점이 궁금해지기 시작했다. 그래서 블로그로 정리해보았다.

1. '0이 반복되고 마지막 숫자 1로 구성된 문자열'을 변환해보았다.
-둘다 숫자1을 숫자로 뽑아내었다. 성공!


let test1 = '000001';
parseInt(test1); //1
Number(test1); //1

2. '2020이라는 숫자와 년도라는 문자로 구성된 문자열' 변환해보았다.
-parseInt()를 사용했을때 2020이라는 숫자를 parse해서 뽑아내었다.
-Number()를 사용하니 NaN(Not a Number)로 문자열이 숫자가 아님을 알려준다. 여기서부터 흥미로워지기 시작했다.


let test = '2020년도';
parseInt(test); // 2020
Number(test); // NaN

3.'제'라는 문자열로 시작하여 숫자1과 '회'라는 문자열을 변환해보았다.
-둘다 NaN(Not a Number)로 숫자가 아니라고 결과가 나온다. 여기서 parseInt도 한계가 있구나 생각했다.


let test = '제1회';
parseInt(test); // NaN
Number(test); // NaN

4. '정수10'인 숫자로 된 문자열에 '소수점으로 길게 늘어진 숫자로 된 문자열'을 변환해보았다.
-parseInt()는 정수만 뽑아서 출력
-Number()는 전체값 출력. 왜냐면 다 숫자이니까!


let test = '10.12345';
parseInt(test); // 10
Number(test); // 10.12345
parseFloat(test); // 10.12345

결론은,
parseInt()는 문자열로 된 부분에서 숫자(정수)만 뽑아서 변환해주는것이 특징이고, Number()은 문자열 전체가 숫자일때 소수점까지 숫자타입으로 가져올 수 있다는것이다.
결론을 내렸지만 복잡하다. 필요할때마다 적재적소로 선택하여 사용하다보면 두개의 차이를 명확히 구분하여 잘 활용할 수 있을것같다.

profile
javascript 공부하는 sumiindaeyo

0개의 댓글