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

View in English Always switch to English

isFinite()

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。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

仕様書

仕様書
ECMAScript® 2027 Language Specification
# sec-isfinite-number

ブラウザーの互換性

関連情報