Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

자바스크립트 Number.isFinite() 함수 – 유한 수 판별 방법과 예제 총정리

Number.isFinite()란?

자바스크립트 Number 객체의 isFinite() 메서드는 인수로 전달된 값이 유한한 수(finite number)인지 판별합니다. 값이 유한 수이면 true를 반환하고, 무한대(Infinity)나 숫자가 아닌 값이면 false를 반환합니다.

전역 함수 isFinite()와 달리 Number.isFinite()는 매개변수를 숫자로 강제 변환하지 않습니다. 따라서 문자열처럼 숫자 타입이 아닌 값에는 항상 false를 반환하며, 더 엄격하고 안전한 타입 검사가 가능합니다.

문법(Syntax)

Number.isFinite(value)
  • value : 유한 수 여부를 검사할 값입니다. 양수, 음수, 0, 계산식 등을 전달할 수 있습니다.
  • 반환값 : 유한 수이면 true, 그렇지 않으면 false.

예제 1: 무한대 검사

다음 예제는 100을 0으로 나눈 결과가 유한 수인지 확인합니다. 자바스크립트에서 0으로 나누면 Infinity가 되므로 false가 반환됩니다.

<html>
<head>
    <title>JavaScript Example</title>
</head>
<body>
    <script type="text/javascript">
        var result = Number.isFinite(100/0);
        if(result) {
            document.write("주어진 수는 유한 수입니다.");
        }else {
            document.write("주어진 수는 무한대입니다.");
        }
    </script>
</body>
</html>

출력 결과

주어진 수는 무한대입니다.

100 ÷ 0의 결과는 Infinity이므로 유한 수가 아니어서 위와 같은 결과가 출력됩니다.

예제 2: 다양한 값으로 테스트하기

계산식뿐만 아니라 양수, 음수, 0도 인수로 전달할 수 있습니다. 반면 문자열처럼 숫자가 아닌 값은 false를 반환합니다.

<html>
<head>
    <title>JavaScript Example</title>
</head>
<body>
    <script type="text/javascript">
        var result1 = Number.isFinite(45);
        document.write(result1);
        document.write("<br>");
        var result2 = Number.isFinite(-38);
        document.write(result2);
        document.write("<br>");
        var result3 = Number.isFinite(0);
        document.write(result3);
        document.write("<br>");
        var result4 = Number.isFinite("Tutorialspoint");
        document.write(result4);
    </script>
</body>
</html>

출력 결과

true
true
true
false

45, -38, 0은 모두 유한 수이므로 true가 출력되고, 마지막의 문자열 "Tutorialspoint"는 숫자가 아니므로 false가 출력됩니다.

함께 알아두면 좋은 것: Number.isInteger()

Number.isInteger()는 값이 정수(integer)인지 확인하는 메서드입니다. 유한 수 여부를 검사하는 isFinite()와 달리 소수점 없는 정수인지까지 판별합니다.

Number.isInteger(10);    // true
Number.isInteger(10.5);  // false
Number.isInteger("10");  // false
Number.isInteger(100/0); // false (Infinity는 정수가 아님)

정리

  • Number.isFinite()는 값이 유한 수인지 검사하며, Infinity, NaN, 숫자가 아닌 값에 대해서는 false를 반환합니다.
  • 전역 isFinite()와 달리 타입 변환을 수행하지 않아 더 엄격한 검사가 가능합니다.
  • 정수 여부를 확인해야 한다면 Number.isInteger()를 사용하는 것이 적합합니다.