23 of 264 menu

isFinite関数

関数 isFinite は、パラメータが有限の数値であるか(つまり、文字列、配列などではなく、プラスまたはマイナスの無限大でもないか)をチェックします。

この関数の動作:数値がプラスまたはマイナスの無限大(つまり Infinity)または数値ではない(つまり NaN)場合、false を返し、それ以外の場合は true を返します。 つまり、文字列、配列などは NaN に変換され、したがって false を返します。

ただし、例外があります:空の文字列 '' は true を返し、空白文字列 '    ' も true を返します。null は true を返し、値 truefalse に対しても true が返されます。

これは、これらの値が NaN ではなく数値に変換されるためです。 空白文字列、論理値、特殊な値を数値と見なさない、本当に正確な数値チェックが必要な場合は、次の関数 isNumeric を使用してください:

function isNumeric(num) { return !isNaN(parseFloat(num)) && isFinite(num); };

この関数がどのように動作するかを見てみましょう。 関数 isFinite はパラメータを数値に変換し、それが Infinity-InfinityNaN でない場合に true を返します。 したがって、右側の部分は明らかに数値でないものを除外しますが、truefalsenull、空の文字列 ''、空白文字列などの値は残ります。これらは正しく数値に変換されるためです。

これらの値を除外するには、関数 parseFloat が必要です。この関数は truefalsenull'''   ' に対して NaN を返します。関数 parseFloat はこのように動作します:パラメータを文字列に変換します。つまり、truefalsenull'true''false''null' になり、次にそこから数値を読み取ります。このとき、空の文字列と空白文字列は NaN になります。次に、parseFloat の結果は、!isNaN を使用して処理され、NaN の代わりに true または false が得られます。 結果として、数値文字列と通常の数値以外のすべてが除外されます。

構文

isFinite(値);

パラメータが数値であるため、ここで isFinitetrue を出力します:

let num = 3; console.log(isFinite(num));

コード実行結果:

true

パラメータが数値でないため、ここで isFinitefalse を出力します:

let num = 'abcde'; console.log(isFinite(num));

コード実行結果:

false

パラメータが無限大であるため、ここで isFinitefalse を出力します:

let num = Infinity; console.log(isFinite(num));

コード実行結果:

false

1/0 は本質的に Infinity(無限大)であるため、ここで isFinitefalse を出力します:

let num = 1 / 0; console.log(isFinite(num));

コード実行結果:

false

空の文字列は数値ではありませんが例外であるため、ここで isFinitetrue を出力します:

let num = ''; console.log(isFinite(num));

コード実行結果:

true

関連項目

  • isNaN 関数、
    NaN をチェックします
  • typeof 演算子、
    データ型を決定します
日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否