Javascript - Number, parseInt, parseFloat 차이점

Number, parseInt, parseFloat문자열을 숫자로 변환하는 함수입니다. 서로 비슷하지만 사용시에 약간의 차이점이 있습니다. 차이점을 간단히 정리해 봤습니다.😄

Number

Number는 생성자로 사용시 객체를 생성하지만, new를 빼고 함수로 사용시에는 문자열을 숫자로 변환합니다. 정수와 실수 다 가능합니다. 문자열 외에 true, falseDate 객체등도 숫자로 변환이 가능합니다.

console.log(Number("25"));
console.log(Number("3.79"));
console.log(Number(true));
console.log(Number(new Date()));
25
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));
25
3
255
31

parseFloat

parseFloat는 문자열을 실수로 변환합니다.

console.log(parseFloat("25"));
console.log(parseFloat("3.79"));
console.log(parseFloat("1.2345e2"));
25
3.79
123.45

차이점

Number는 빈 문자열을 0으로 변환합니다.

console.log(Number(""));
console.log(parseInt(""));
console.log(parseFloat(""));
0
NaN
NaN

parseInt와 parseFloat는 문자열에서 앞의 숫자부분만 변환합니다.

var s = "12.3 abc";
console.log(Number(s));
console.log(parseInt(s));
console.log(parseFloat(s));
NaN
12
12.3

Number0x, 0o, 0b 로 시작하는 16진수, 8진수, 2진수 문자열을 각각 알맞게 변환하지만, parseInt16진수만 알맞게 변환합니다. (8진수, 2진수는 radix 인수를 사용해야 합니다.)

console.log(Number("0xff"), Number("0o11"), Number("0b11"));
console.log(parseInt("0xff"), parseInt("0o11"), parseInt("0b11"));
255 9 3
255 0 0