Number, parseInt, parseFloat는 문자열을 숫자로 변환하는 함수입니다. 서로 비슷하지만 사용시에 약간의 차이점이 있습니다. 차이점을 간단히 정리해 봤습니다.😄
Number
Number는 생성자로 사용시 객체를 생성하지만, new를 빼고 함수로 사용시에는 문자열을 숫자로 변환합니다. 정수와 실수 다 가능합니다. 문자열 외에 true, false나 Date 객체등도 숫자로 변환이 가능합니다.
console.log(Number("25"));
console.log(Number("3.79"));
console.log(Number(true));
console.log(Number(new Date()));
3.79
1
1619514121101
parseInt
parseInt는 문자열을 정수로 변환합니다. radix 인수를 적으면 문자열을 특정 진수로 인식합니다.
console.log(parseInt("25"));
console.log(parseInt("3.79"));
console.log(parseInt("ff", 16));
console.log(parseInt("11111", 2));
3
255
31
parseFloat
parseFloat는 문자열을 실수로 변환합니다.
console.log(parseFloat("25"));
console.log(parseFloat("3.79"));
console.log(parseFloat("1.2345e2"));
3.79
123.45
차이점
Number는 빈 문자열을 0으로 변환합니다.
console.log(Number(""));
console.log(parseInt(""));
console.log(parseFloat(""));
NaN
NaN
parseInt와 parseFloat는 문자열에서 앞의 숫자부분만 변환합니다.
var s = "12.3 abc";
console.log(Number(s));
console.log(parseInt(s));
console.log(parseFloat(s));
12
12.3
Number는 0x, 0o, 0b
로 시작하는 16진수, 8진수, 2진수 문자열을 각각 알맞게
변환하지만, parseInt는 16진수만 알맞게 변환합니다.
(8진수, 2진수는 radix 인수를 사용해야 합니다.)
console.log(Number("0xff"), Number("0o11"), Number("0b11"));
console.log(parseInt("0xff"), parseInt("0o11"), parseInt("0b11"));
255 0 0