JavaScript의 parseInt() 함수는 숫자를 나타내는 문자열과 진법(radix)을 나타내는 숫자, 두 개의 매개변수를 받아 해당 진법의 정수를 반환하는 전역 함수입니다. 주로 사용자 입력이나 API 응답처럼 문자열 형태로 들어온 숫자 데이터를 실제 정수 값으로 변환할 때 유용하게 사용됩니다.
기본 문법
parseInt('4524', 8);매개변수 설명
- 문자열(string): 정수로 변환할 대상 문자열입니다. 앞뒤 공백은 자동으로 제거된 후 해석됩니다.
- 진법(radix): 2부터 36까지의 정수로, 문자열을 어떤 진법의 숫자로 해석할지 지정합니다.
진법을 생략하면 문자열의 시작 패턴에 따라 진법이 추정되므로(예: '0x'로 시작하면 16진수), 예상치 못한 결과를 방지하려면 항상 진법을 명시적으로 지정하는 것이 좋습니다.
예제 1: 8진수 변환
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<script type="text/javascript">
var result = parseInt('4524', 8);
document.write("Result: " + result);
</script>
</body>
</html>출력 결과
Result: 2388
위 예제에서 '4524'는 8진수로 해석되어 10진수 정수 2388로 변환됩니다. 계산 과정은 다음과 같습니다: 4×8³ + 5×8² + 2×8¹ + 4×8⁰ = 2048 + 320 + 16 + 4 = 2388.
예제 2: 다양한 진법 비교
같은 문자열이라도 진법에 따라 결과가 완전히 달라집니다. 아래 예제는 동일한 문자열 '4524'를 각각 8진수, 10진수, 16진수로 변환한 결과를 보여줍니다.
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<script type="text/javascript">
var result1 = parseInt('4524', 8);
document.write("Result: " + result1);
document.write("<br>");
var result2 = parseInt('4524', 10);
document.write("Result: " + result2);
document.write("<br>");
var result3 = parseInt('4524', 16);
document.write("Result: " + result3);
</script>
</body>
</html>출력 결과
Result: 2388 Result: 4524 Result: 17700
알아두면 좋은 점
- 문자열을 지정된 진법으로 해석할 수 없으면 NaN(Not a Number)을 반환합니다. 예를 들어 parseInt('45924', 8)은 9가 8진수에 존재하지 않으므로 앞부분만 해석해 4를 반환합니다.
- 소수점 이하는 무시되며, 문자열 중간에 숫자가 아닌 문자가 나오면 그 앞까지만 변환합니다.
- ES2015(ES6) 이후에는 Number.parseInt()로도 호출할 수 있으며, 두 방식은 완전히 동일하게 동작합니다.