isFinite関数(値が有限か無限かを調べる)

JavaScript のグローバル関数のひとつである isFinite は対象の値が有限の値か無限の値かを調べ、 true または false を返します。ここでは isFinite 関数の使い方について解説します。

※ グローバル関数の isFinite と似たものとして Number オブジェクトで Number.isFinite メソッドが用意されており、より厳格に有限の数値かどうかを調べます。詳しくは「値が有限でかつ数値型であるかどうかを調べる(Number.isFinite)」を参照されてください。

(Last modified: )

isFinite関数の使い方

グローバル関数のひとつである isFinite 関数は、対象の値が有限の値か無限の値か調べて、有限の値の場合には true を返します。書式は次の通りです。

isFinite(値)

引数に指定した値が有限の値かどうかを調べます。値が NaN 、正の無限大( Infinity )、負の無限大( -Infinity )であれば false 、それ以外は true を返します。値が数値型ではない場合はまず数値型に変換されたあとで調べます。

次のサンプルをみてください。値が NaN 、正の無限大( Infinity )、負の無限大( -Infinity )の場合は false となります。

isFinite(Infinity);
>> false

isFinite(-Infinity);
>> false

isFinite(NaN);
>> false

無限大ではない数値は有限数です。

isFinite(16);
>> true

isFinite(0);
>> true

isFinite(-6.4);
>> true

文字列は false となりますが、数値のみで構成される文字列と空文字については数値に変換したときに数値となるため true となります。

isFinite('Hello');  // 数値に変換すると NaN
>> false

isFinite('78');  // 数値に変換すると 78
>> true

isFinite('');  // 数値に変換すると 0
>> true

true は数値に変換すると 1 、 false は数値に変換すると 0 、 null は数値に変換すると 0 となるため true となります。 undefined は数値に変換すると NaN となるため false となります。

isFinite(true);  // 数値に変換すると 1
>> true

isFinite(null);  // 数値に変換すると 0
>> true

isFinite(undefined);  // 数値に変換すると NaN
>> false

値がオブジェクト型の場合はそれぞれ異なります。

isFinite([10]);  // 数値に変換すると 10
>> true

isFinite([10, 20]);  // 数値に変換すると NaN
>> false

isFinite([]);  // 数値に変換すると 0
>> true

isFinite({a:'10'});  // 数値に変換すると NaN
>> false

グローバル関数の isFinite では、対象の値を数値に変換したあとで有限か無限かを判定している点に注意してください。

-- --

isFinite 関数の使い方について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。