isFinite()

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

isFinite() 函式用於判斷一個值是否為有限數,如果需要,它會首先將該值轉換為數字。有限數是指不是 NaN 或 ±Infinity 的數。由於 isFinite() 函式內部的型別強制轉換可能令人感到意外,因此您可能更傾向於使用 Number.isFinite()

試一試

function div(x) {
  if (isFinite(1000 / x)) {
    return "Number is NOT Infinity.";
  }
  return "Number is Infinity!";
}

console.log(div(0));
// Expected output: "Number is Infinity!""

console.log(div(1));
// Expected output: "Number is NOT Infinity."

語法

js
isFinite(value)

引數

value

要測試的值。

返回值

如果給定值在轉換為數字後是 NaNInfinity-Infinity,則返回 false;否則返回 true

描述

isFinite() 是全域性物件的一個函式屬性。

isFinite() 函式的引數不是 Number 型別時,該值會首先被強制轉換為數字,然後將結果值與 NaN 和 ±Infinity 進行比較。這與 isNaN 的行為一樣令人困惑——例如,isFinite("1")true

Number.isFinite() 是一種更可靠的方式來測試一個值是否為有限數字值,因為它對任何非數字輸入都返回 false

示例

使用 isFinite()

js
isFinite(Infinity); // false
isFinite(NaN); // false
isFinite(-Infinity); // false

isFinite(0); // true
isFinite(2e64); // true
isFinite(910); // true

// Would've been false with the more robust Number.isFinite():
isFinite(null); // true
isFinite("0"); // true

規範

規範
ECMAScript® 2026 語言規範
# sec-isfinite-number

瀏覽器相容性

另見