JavaScript에서 문자열을 정수로 변환할 때 가장 널리 쓰이는 내장 함수가 바로 parseInt()입니다. 이 함수는 문자열과 진수(radix)를 함께 전달받아, 2진수부터 36진수까지 어떤 진법으로 표현된 숫자든 정수로 손쉽게 변환해 줍니다.
문법(Syntax)
parseInt(string, radix);
각 매개변수의 의미는 다음과 같습니다.
string − 파싱할 값입니다. 이 인자가 문자열이 아니면 먼저 ToString 메서드를 통해 문자열로 변환되며, 앞에 있는 선행 공백(whitespace)은 자동으로 무시됩니다.
radix − 문자열이 표현하는 진수(base)를 나타내는 2부터 36 사이의 정수입니다. 예를 들어 2는 2진수, 8은 8진수, 10은 10진수, 16은 16진수를 의미합니다.
예제
아래 예제에서는 다양한 진법의 문자열을 parseInt()로 변환하는 과정을 보여줍니다.
console.log(parseInt("100", 10)); // 10진수 → 100
console.log(parseInt("10", 8)); // 8진수 → 8
console.log(parseInt("101", 2)); // 2진수 → 5
console.log(parseInt("2FF3", 16)); // 16진수 → 12275
console.log(parseInt("ZZ", 36)); // 36진수 → 1295출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
100
8
5
12275
1295
알아두면 좋은 점
parseInt()는 문자열의 시작 부분에서 유효한 숫자를 찾지 못하면 NaN(Not a Number)을 반환합니다. 또한 radix를 생략하면 브라우저가 문자열 형태를 보고 진수를 추측하므로, 의도치 않은 결과를 피하려면 항상 radix를 명시적으로 지정하는 것이 좋습니다.
참고로 Number()나 단항 더하기 연산자(+)도 문자열을 숫자로 변환할 수 있지만, 이들은 항상 10진수로만 해석합니다. 반면 parseInt()는 radix를 지정해 다양한 진법을 유연하게 처리할 수 있다는 점이 큰 장점입니다.