[TIL] Number / parseInt 차이

Cottonmycotton·2021년 10월 1일
0

TIL

목록 보기
1/16
post-thumbnail

문자열을 숫자로 바꿀때 마다 Number 또는 parseInt 두 함수의 차이점을 모른채 번갈아가며 사용했다. 문자열을 숫자로 타입변환을 해준다는 점에서 두 함수는 동일해 보이지만 다음과 같은 차이점이 있다.

  • Number 함수는 숫자로만 이루어진 문자열을 변환할 수 있다
  • parseInt 는 Number와 달리 문자열 내 숫자를 찾아내는 기능이 있다

1. '1234'

const str = '1234';

Number(str); // 1234
parseInt(str); // 1234

두 함수 모두 '1234'의 숫자 타입인 1234를 반환한다.

2. '안녕하세요'

const str = '안녕하세요';

Number(str); // NaN
parseInt(str); // NaN

두 함수 모두 NaN(Not a Number)를 반환한다.

3. '10월 입니다'

const str = '10월 입니다'

Number(str); // NaN
parseInt(str); // 10

Number함수는 NaN을 반환하지만 parseInt는 10일 찾아내 숫자타입 10을 반환한다.

4. '오늘은 10월 1일'

const str = '오늘은 10월 1일';

Number(str); // NaN
parseInt(str); // NaN

두 함수 모두 NaN을 반환한다. parseInt 는 10 또는 1을 반환할 것으로 예상했지만 문자열의 시작이 숫자가 아니면 NaN이 나온다는 것을 알게 되었다.

5. '2021.1001'

const str = '2021.1001';

Number(str); // 2021.1001
parseInt(str); // 2021

Number함수는 소수점 까지 처리하지만 parseInt는 정수만을 반환한다. 참고로 실수를 처리하는데는 parseFloat() 함수를 사용하면 된다.

📝 정리


  • Number()는 숫자로만 이루어진 문자열을 변환할 수 있다.
  • parseInt()는 문자열 내에 숫자를 찾아 타입변환을 하지만 문자열이 숫자가 아닌 타입으로 시작할 때는 NaN을 반환한다.
  • 소수점을 처리할 때는 Number() 또는 parseFloat()을 사용하자.
profile
투명인간

0개의 댓글