Language/JavaScript
parseInt( ) vs Number( )
eess
2024. 8. 27. 19:09
Javascript에서 parseInt( )와 Number( )의 차이를 정리해보았습니다.
parseInt( )
- 문자열을 파싱해서 특정 진수의 정수를 반환합니다. 첫 번째 매개변수는 string, 두 번째 매개변수는 radix 입니다.
- 문자열에서 첫 번째 숫자 부분을 정수로 변환하고, 소수점과 숫자 이후의 문자열은 무시합니다.
- radix가 2~36 범위의 값이 아니거나, 공백이 아닌 첫 문자를 정수로 변환할 수 없는 경우 NaN을 반환합니다.
parseInt("123"); // 123 (문자열을 정수로 변환)
parseInt("123.45"); // 123 (소수점 이하 숫자는 무시)
parseInt("123abc"); // 123 (숫자 이후의 문자는 무시)
parseInt(" 123 "); // 123 (문자열 앞뒤 공백은 무시)
parseInt("abc123"); // NaN (숫자로 시작하지 않으면 NaN)
parseInt(undefined); // NaN (undefined는 변환 불가능)
parseInt(null); // NaN (null은 변환 불가능)
parseInt(""); // NaN (빈 문자열은 변환 불가능)
parseInt(" "); // NaN (공백 문자열은 변환 불가능)
Number( )
- 모든 타입을 number로 변환하여 반환합니다.
- Number()는 Date 객체는 number로 반환합니다.
- boolean true는 1, false는 0으로 반환합니다.
- undefined는 NaN, null은 0으로 반환합니다.
- 소수점을 포함하여 숫자형 문자열을 숫자로 변환합니다.
let d = new Date("December 17, 1995 03:24:00");
console.log(Number(d)); // 819138240000
Number(true); // 1 (true는 1로 변환)
Number(false); // 0 (false는 0으로 변환)
Number("123"); // 123 (문자열을 숫자로 변환)
Number("123.45"); // 123.45 (소수점 포함하여 변환)
Number("123abc"); // NaN (숫자로 변환 불가능한 문자가 포함된 경우)
Number("abc"); // NaN (숫자로 변환 불가능한 경우)
Number(undefined); // NaN (undefined는 변환 불가능)
Number(null); // 0 (null은 0으로 변환)
Number(""); // 0 (빈 문자열은 0으로 변환)
Number(" "); // 0 (공백 문자열은 0으로 변환)
정리
- parseInt(), Number() 둘다 숫자 문자열을 number로 변환할 수 있습니다.
- parseInt()
- 문자열만 변환하고, 진법을 지정하는 두 번째 매개변수가 있습니다.
- 소수점을 무시하고 정수로 반환합니다.
- 빈 문자열, 공백 문자열, null은 모두 NaN으로 반환합니다.
- Number()
- 문자열과 boolean, Date도 number로 변환합니다.
- 소수점까지 살립니다.
- 빈 문자열, 공백 문자열, null은 0으로 변환합니다.
- 제 개인적인 생각으로는...
1) 소수점을 살려서 변환해야 할 경우 Number()를 사용하는 것이 적절하겠습니다.
2) 입력값이 빈 문자열 / 공백 문자열 / null 이 될 수도 있는 경우,
- 단순히 0으로 처리하고 싶다면 Number()가 좋겠습니다.
- 반면, 잘못된 입력을 구별하기 위해 NaN으로 반환값을 받아서 처리하고 싶다면 parseInt()가 좋겠습니다.
참고