isFinite() 함수는 전달받은 값이 유한한(finite) 숫자인지 여부를 판별하는 JavaScript 내장 함수입니다. 값이 유한한 숫자라면 true를 반환하고, 그렇지 않으면 false를 반환합니다. 이 함수는 전역 함수로 바로 호출할 수 있으며, Number 객체의 정적 메서드인 Number.isFinite() 형태로도 사용할 수 있습니다.
문법(Syntax)
isFinite() 함수의 기본적인 사용 문법은 다음과 같습니다.
isFinite(5655);
예제(Example)
아래 예제에서는 Math.min(), Number.isFinite(), Math.max()의 결과값을 각각 isFinite()로 검사하여 그 결과를 화면에 출력합니다.
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<script type="text/javascript">
var result1 = Math.min();
document.write(isFinite(result1));
document.write("<br>");
var result2 = Number.isFinite(100/0);
document.write(result2);
document.write("<br>");
var result3 = Math.max(25, 36, 862);
document.write(isFinite(result3));
</script>
</body>
</html>
예제 설명
Math.min(): 인자 없이 호출하면Infinity를 반환하므로,isFinite(result1)은false를 출력합니다.Number.isFinite(100/0): 100을 0으로 나눈 결과는Infinity이므로false가 출력됩니다.Math.max(25, 36, 862): 세 값 중 최대값인 862를 반환하며, 이는 유한한 숫자이므로true가 출력됩니다.
실행 결과(Output)
false false true
isFinite()와 Number.isFinite()의 차이점
전역 isFinite() 함수는 전달된 값을 자동으로 숫자로 변환한 뒤 검사합니다. 따라서 isFinite("100")처럼 문자열을 전달해도 숫자로 변환되어 true를 반환합니다. 반면 Number.isFinite()는 타입 변환을 수행하지 않으므로, 값이 숫자(Number) 타입이면서 동시에 유한한 경우에만 true를 반환합니다. 즉, Number.isFinite("100")은 문자열이기 때문에 false를 반환합니다. 이러한 차이를 이해하고 상황에 맞게 사용하면 더 안전한 코드를 작성할 수 있습니다.