[함수] parseInt()

posinity·2022년 11월 18일
0

JavaScript

목록 보기
9/31

정의

자바스크립트에 내장되어 있는 함수로, 말 그대로 문자열을 파싱하여 문자열에 포함된 숫자를 찾아서 number로 형변환을 시켜준다.

사용법

parseInt(string)
parseInt(string, radix)

매개변수

string

파싱할 값입니다. 문자열이 아닐 경우 ToString 추상 연산을 사용해 문자열로 변환합니다. 문자열의 선행 공백은 무시합니다.

radix

string의 진수를 나타내는 2부터 36까지의 정수입니다. 주의하세요. 기본 값이 10이 아닙니다! Number 자료형이 아닌 경우 Number로 변환합니다.
radix가 10을 초과하는 경우, 영문 알파벳이 9보다 큰 숫자를 나타냅니다. 즉, 16진수에서는 A부터 F까지를 사용합니다.

진수 인자로 지정한 값은 (필요한 경우) 숫자로 변환됩니다. 변환 후의 값이 0, NaN, Infinity 중 하나(undefined는 NaN으로 변환)라면 JavaScript는 다음을 가정합니다.

입력 값이 "0x" 또는 "0X"(0과 대/소문자 X)로 시작하는 경우 radix를 16으로 간주하여 나머지 문자열을 16진수로 파싱합니다.
입력 값이 그 외의 다른 값으로 시작하면 radix는 10(10진수)입니다.
이외에 진수 값이 [2, 36]의 범위를 벗어나는 경우 parseInt가 NaN을 반환합니다.

NaN 값은 모든 진수에서 숫자가 아닙니다. parseInt의 결과가 NaN인지 확인하려면 isNaN을 사용하세요. NaN을 산술 연산에 사용하면 연산 결과 역시 NaN이 됩니다.

반환값

다음과 같은 경우에는 NaN을 반환합니다.

  1. radix가 2보다 작거나 36보다 큰 경우.
  2. 공백이 아닌 첫 문자를 숫자로 변환할 수 없는 경우.
let age = parseInt('30');
console.log(age , typeof age);   // 30, number

문자열이 숫자로 시작한다면 숫자만을 리턴해준다.

let str = parseInt('123숫자들');
console.log(str);   // 123

그러나 숫자가 포함된 문자열이라 하더라도 문자로 시작하거나, 아님 숫자를 포함하지 않는 문자열의 경우는 NaN으로 반환된다.

let str = parseInt('숫자들123');
console.log(str);   // NaN


let sing = parseInt('lalala');
console.log(sing);   // NaN

주의점

const age = prompt("How old are you?");

console.log(age, parseInt(age), age);

형을 변환해준다고 하기에 parseInt(변수)를 사용한 뒤에 변수의 타입을 다시 찍어보면 계속 number로 나올 것이라고 생각했다. 그런데 위 코드를 찍어보니 첫 번째, 세 번째는 string 타입으로, 두 번째는 number 타입으로 찍였다. 따라서 parseInt(변수)를 한 번 사용했다고 해서, 해당 변수의 타입이 number 타입으로 영구적으로 변하는 것은 아닌 것 같다. parseInt 함수를 사용할 때만 임시로 형 변환이 되는 것 같다.

참고자료

[자바스크립트] parseInt 함수 (궁금증 포함..)

mdn - parseInt()

profile
문제를 해결하고 가치를 제공합니다

0개의 댓글