문자열을 숫자로 바꿀떄 보통 Number()와 parseInt를 많이 사용했다. 그런데 이 두가지는 뭐가 다를까? 이번기회에 차이점을 정리하고자 한다.
1. Number(Str)
- 문자열을 인자로 받으면 해당 문자열을 숫자로 바꿔준다.
- 하지만 그 문자열은 숫자 형태로만 구성되어있어야 유의미하다. 아래의 예시를 참고하자.
console.log(Number('1234')); // 결과값 : 1234
console.log(Number('100원')); // 결과값 : NaN
console.log(Number('10.444')); // 결과값 : 10.444
- 위와같이 한글 등의 문자가 껴있으면 원하는 결과값이 출력되지 않는다.
2. parseInt(Str)
- Nunber(Str)와 같이 문자열을 인자로 받으면 해당 문자열을 숫자로 바꿔준다.
- 그런데 변경되는 범위가 더 관대하고, 변경된 형태가 약간 상이하다. 아래 예시를 참고하자
console.log(parseInt('1234')); // 결과값 : 1234
console.log(parseInt('100원')); // 결과값 : 100
console.log(parseInt('가격 : 100')); // 결과값 : NaN
console.log(parseInt('10.444')); // 결과값 : 10
- 위의 예시와 같이, Number에서는 변경되지못했던 숫자+한글 조합도 숫자형태만 추출해준다. 하지만 이는 문자가 뒤에 있을때만 가용한 결과값이다.
console.log(parseInt('100원')); // 결과값 : 100
console.log(parseInt('가격 : 100')); // 결과값 : NaN
- 소수의 경우도 상이한데, String영역에 소수를 삽입했을때 소수점영역이 버림된 채 출력된다!
타입만 변경된 채 그대로 출력하는 Number와는 달리 말이다!
console.log(parseInt('10.444')); // 결과값 : 10
결론
숫자형태의 문자열을 그대로 숫자로 반환하고싶을때 Number() 를 쓰고,
뒤에 -원 등의 가격이 붙는다거나, 정수 형태의 값을 얻고싶다면 parseInt() 를 사용하자!
참고
https://overcome-the-limits.tistory.com/264
[자바스크립트] parseInt와 Number의 차이
들어가며 알고리즘을 공부하면서, 가끔 parseInt를 써야 하는 경우와 Number를 써야 하는 경우는 언제인지 궁금했습니다. 이번 기회에 parseInt와 Number의 차이에 대해 정리해보면서, 언제 각각의 메서
overcome-the-limits.tistory.com
'Study > JavaScript' 카테고리의 다른 글
[JavaScript] ... Spread Operator = 괄호 벗겨주세요 (0) | 2023.06.20 |
---|---|
[JavaScript] 문자조작에 유용한 tagged literals (0) | 2023.06.19 |
[JavaScript] this (0) | 2023.05.02 |
[JavaScript] 호이스팅이란? (0) | 2023.04.28 |
[javascript 메서드 정리] 스크롤 이동 메서드 window.scroll() VS window.scrollTo() VS window.scrollBy() (0) | 2023.03.15 |