이번 포스팅에서는 JavaScript에서 문자열을 숫자로 변환하는 몇 가지 방법을 소개합니다.
단항 연산자( +, - )
+ 연산자는 피연산자를 Number 타입으로 변환하며 - 연산자는 피연산자를 음수인 Number 타입으로 변환합니다.
단항 연산자는 문자열에 따라 정수 또는 부동 소수점 숫자로 자동 변환합니다. 그리고 문자열이 아닌 true
, false
, null
도 숫자로 변환됩니다.
단항 연산자가 숫자로 해석할 수 없으면 NaN
을 반환합니다.
console.log(+'10');
// 10
console.log(-'10');
// -10
console.log(+'123.456');
// 123.456
console.log(-'123.456');
// -123.456
console.log(+true);
// 1
console.log(+false);
// 0
console.log(+null);
// 0
console.log(+'abc');
// NaN
parseInt()
parseInt()
함수는 문자열을 정수로 변환된 값을 반환합니다. 두 개의 인수를 가지며, 첫 번째 인수는 변환하려는 문자열이고 두 번째 인수는 기수입니다. 두 번째 인수인 기수는 숫자 진법 체계를 의미하며 생략 가능합니다.
두 번째 인수를 생략하면 정수는 10진수로 표현되며, 문자열이 "0x"로 시작하면 16진수로 표현됩니다. 예전에는 "0"으로 시작하면 8진수로 표현되었는데 ECMAScript 5부터 삭제되었습니다.
parseInt()
함수는 문자열을 정수로 변환할 수 없으면 NaN
을 반환합니다.
console.log(parseInt('100'));
// 100
console.log(parseInt('123ABC'));
// 123
console.log(parseInt('ABC'));
// NaN
console.log(parseInt('100', 2));
// 4
console.log(parseInt('100', 8));
// 64
console.log(parseInt('100', 16));
// 256
console.log(parseInt('0x100'));
// 256
parseFloat()
parseFloat()
함수는 문자열을 부동 소수점 숫자로 변환된 값을 반환하며, 한 개의 인수를 가집니다. 인수가 문자열이 아닌 경우 ToString
추상 연산을 하여 문자열로 변환합니다. 그리고 변환된 문자열을 부동 소수점 숫자로 변환합니다.
parseFloat()
함수는 문자열을 부동 소수점 숫자로 변환할 수 없으면 NaN
을 반환합니다.
console.log(parseFloat(100.123));
// 100.123
console.log(parseFloat('ABC'));
// NaN
console.log(parseFloat('100.123'));
// 100.123
console.log(parseFloat('123.456.abc'));
// 123.456
Number()
Number()
함수는 인수의 문자열 Format에 따라 자동으로 정수 또는 부동 소수점 숫자로 변환됩니다.
문자열을 숫자로 변환할 수 없으면 NaN
을 반환하며, parseInt()
및 parseFloat()
함수와 다르게 문자열에 숫자가 아닌 값이 존재하는 경우도 NaN
을 반환합니다.
console.log(Number(100.123));
// 100.123
console.log(Number('100.123'));
// 100.123
console.log(Number(100));
// 100
console.log(Number('123'));
// 123
console.log(Number('ABC'));
// NaN
console.log(Number('123.456.abc'));
// NaN
'JavaScript > JavaScript 문법' 카테고리의 다른 글
[JavaScript]객체를 배열로 변환하는 방법 (0) | 2021.12.24 |
---|---|
[JavaScript]물음표 사용 방법, Null 병합 연산자, 옵셔널 체이닝 (0) | 2021.12.22 |
[JavaScript]try-catch로 잡을 수 없는 예외 (0) | 2021.12.20 |
[JavaScript]코드 실행 시간 측정 방법 (3) | 2021.12.17 |
[JavaScript]rest와 spread 차이 (0) | 2021.12.14 |
댓글