728x90
알고리즘 공부를 하면서 자주 보이는 Number와 parseInt.
형변환을 해주는건 알고 있었지만 어느것이 더 적절한지 알아보기 위해
둘의 차이점을 정리해 보려 한다.
Number(str)
문자열을 인자로 받으면 해당 문자열을 숫자로 바꿔주는 Number
const num = Number('123');
console.log(num); // 123
위의 코드는 '123'이라는 문자열을 123라는 숫자로 형변환 되어 출력된다.
const price = Number('100원');
console.log(price); // NaN
하지만 문자열이 숫자가 아닌경우 NaN이 출력된다.
parseInt(str)
Number(str)와 동일하게 문자열을 인자로 받으면 숫자로 바꿔주는 parseInt
const num = parseInt('123');
console.log(num); // 123
위의 코드는 문자열 '123'을 123 라는 숫자로 형변환해서 출력해준다.
const price1 = parseInt('1000원');
console.log(price1); // 1000
const price2 = parseInt('가격: 1000원');
console.log(price2); // NaN
여기서 Number와 다른 점이 있다면, 문자열이 숫자로 시작하는 경우에는 숫자가 끝날때 까지만 형변환을 하여 출력된다.
하지만 시작이 숫자가 아니면 Number와 동일하게 NaN이 출력된다.
const num = '10.123';
Number(num); // 10.123
parseInt(num); // 10
parseFloat(num); // 10.123
소수로 이루어진 문자열의 경우
Number는 전체값 출력, parseInt는 정수만 출력된다.
결론
문자열에서 숫자가 먼저 오는 문자열 숫자와 텍스트가 혼합 변수 값은 parseInt만 숫자 출력
소수점의 결과를 다 나타내고 싶을 때는 Number를 사용하자.
++
0으로 시작하는 문자열의 경우에는 Number, parseInt 모두 0을 제외한 숫자만 출력된다.
Reference
https://haruisshort.tistory.com/251
https://velog.io/@blackwidow/parseInt%EC%99%80-Number%EC%9D%98-%EC%B0%A8%EC%9D%B4
728x90
'FRONTEND > Javascript' 카테고리의 다른 글
[Javascript] every()와 some() (0) | 2024.01.03 |
---|---|
[JS] split(), join()를 활용해서 문자열 나누기 (0) | 2023.12.08 |
[JS] UUID로 고유값 생성하기 (0) | 2023.08.16 |
[JS] 일반 함수와 화살표 함수의 차이 (0) | 2023.05.17 |
[JS] 심볼(Symbol) 자료형 (0) | 2023.04.19 |