Number.isFinite()

Number.isFinite() メソッドは、渡された値が有限数であるかどうかを判断します。すなわち、指定された値が Number であり、その数値が正の無限大 (Infinity)、負の無限大 (Infinity)、非数 (NaN) のどれでもないことをチェックします。

試してみましょう

構文

Number.isFinite(value)

引数

value

有限数かどうかテストされる値。

返値

与えられた値が有限数かどうかを示す論理値です。

解説

isFinite() グローバル関数と比較すると、このメソッドは強制的に引数を数値に変換しません。すなわち、数値型の値で、それが有限数でもある場合のみ、 true を返すことを意味します。

isFinite の使用

Number.isFinite(Infinity);  // false
Number.isFinite(NaN);       // false
Number.isFinite(-Infinity); // false

Number.isFinite(0);         // true
Number.isFinite(2e64);      // true

Number.isFinite('0');       // false だが、グローバルの
                            // isFinite('0') では true になる
Number.isFinite(null);      // false だが、グローバルの
                            // isFinite(null) では true になる

ポリフィル

if (Number.isFinite === undefined) Number.isFinite = function(value) {
    return typeof value === 'number' && isFinite(value);
}

仕様書

Specification
ECMAScript Language Specification
# sec-number.isfinite

ブラウザーの互換性

BCD tables only load in the browser

関連情報

  • Number.isFinite のポリフィルは core-js で利用できます
  • このメソッドが所属している Number オブジェクト
  • グローバル関数 isFinite