このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

isFinite()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨2015年7月⁩.

グローバル関数 isFinite() は渡された値が有限数かどうかを判定します。必要に応じて、引数はまず数値へと変換されます。 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));
// 予想される結果: "Number is Infinity!""

console.log(div(1));
// 予想される結果: "Number is NOT Infinity."

構文

js
isFinite(value)

引数

value

検査を行う値。

返値

与えられた値が数値に変換した後に NaNInfinity-Infinity であった場合は false です。それ以外の場合は true です。

解説

isFinite() はグローバルオブジェクトの関数プロパティです。

isFinite() 関数の引数が数値型 でない場合、その値は最初に数値に変換され、その結果が 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

// より堅牢な Number.isFinite() を使用すると、異なる結果になります。
isFinite(null); // true
isFinite("0"); // true

仕様書

Specification
ECMAScript® 2026 Language Specification
# sec-isfinite-number

ブラウザーの互換性

関連情報