JavaScript変数が数値であるかどうかを確認するいくつかの方法

JavaScript変数が数値であるかどうかを確認するいくつかの方法

フロントエンドパイオニア

JavaScript変数が数値であるかどうかを確認するいくつかの方法

前書き


JavaScriptは動的に型付けされた言語です。つまり、インタプリタは実行時に変数の型を決定します。これにより、さまざまなタイプのデータを同じ変数に格納できます。しかし、ドキュメントと一貫性がない場合、コードを使用するときに、変数のタイプがわからない可能性があります。

数値を操作する場合、文字列や配列を操作すると奇妙な結果になります。この記事では、使用される変数が数値であるかどうかを判断するのに役立つさまざまな関数について学習します。

「100」などの文字列形式の数値は処理しないでください。JavaScriptのNaN、Infinity、-Infinityなどの特別な値も数値ですが、これらの値は無視します。

これらの要件に応じて、Numberオブジェクトの組み込みのisFinite()関数を使用するのが最適です。ただし、Number.isNaN()やtypeof()などの他の関数を使用することもあります。

まず、いくつかのテスト変数を作成します。


let intVar = 2;
let floatVar = 10.5;
let stringVar = '4';
let nanVar = NaN;
let infinityVar = Infinity;
let nullVar = null;
let undefinedVar = undefined;

Number.isFinite()関数を使用する


Number.isFinite()は、変数が数値であるかどうかを確認するだけでなく、それが特別な値であるかどうかを確認するためにも使用されます。NaN、Infinity、または-Infinityに遭遇すると、falseを返します。

次に、上記で定義した変数をテストします。

Number.isFinite(intVar);
true
Number.isFinite(floatVar);
true
Number.isFinite(stringVar);
false
Number.isFinite(nanVar);
false
Number.isFinite(infinityVar);
false
Number.isFinite(nullVar);
false
Number.isFinite(undefined);
false

結果は満足のいくものです。特別な数値とすべての非数値変数は無視されます。変数が数値であるかどうかを確認する場合は、Number.isFinite()関数が最適です。

Number.isNaN()関数を使用する


標準のNumberオブジェクトにはisNaN()メソッドがあります。渡されたパラメーター値がNaNであるかどうかを判別するために使用されます。変数が数値であるかどうかを確認したいので、確認にはNOT演算子!を使用する必要があります。

ここで、not演算子を使用してNumber.isNaN()関数を追加することにより、数値のみをフィルタリングできるかどうかを見てみましょう。

!Number.isNaN(intVar);
true
!Number.isNaN(floatVar);
true
!Number.isNaN(stringVar);
true#判定エラー
!Number.isNaN(nanVar);
false
!Number.isNaN(infinityVar);
true#判定エラー
!Number.isNaN(nullVar);
true#判断エラー
!Number.isNaN(undefinedVar);
true#判断エラー

このメソッドは、受け入れる値がまったく数値ではないため、かなり寛大です。この方法は、値が数値であることがわかっていて、それがNaN値であるかどうかを確認する場合に最適です。通常の数値には適していません。

typeof()関数を使用する


typeof()関数はグローバル関数です。そのパラメーターは変数または値を受け入れ、そのタイプの文字列表現を返すことができます。JavaScriptには9つのタイプがあります。

  • 未定義
  • ブール値
  • ストリング
  • bigint
  • シンボル
  • オブジェクト
  • null(typeof()はオブジェクトとして表示されます)
  • 関数(特殊なタイプのオブジェクト)
    変数が数値であるかどうかを確認するには、typeof()によって返される値が「数値」であるかどうかを確認するだけで済みます。テスト変数を試してみましょう:

typeof(intVar)== '数値';
true
typeof(floatVar)== '数値';
true
typeof(stringVar)== '数値';
false
typeof(nanVar)== '数値';
true#クリック错误
typeof(infinityVar)== 'number';
true#クリック错误
typeof(nullVar)== 'number';
false
typeof(undefined)== '数値';
false

typeof()関数は、Number.isNaN()よりもはるかに優れています。nullとundefinedが数値ではないと正しく判断できます。ただし、NaNとInfinityの場合は、trueを返します。

これは技術的には正しいですが、NaNとInfinityは特別な数値であり、ほとんどの場合無視します。

総括する


この記事では、JavaScriptの変数が数値であるかどうかを確認する方法について説明しました。

  • Number.isNaN()関数は、変数が数値であることがわかっていて、それがNaNであるかどうかを確認する必要がある場合にのみ適用できます。

  • コードでNaN、Infinity、-Infinityなどの数値を処理する必要がある場合は、typeof()関数を適用できます。

  • Number.isFinite()メソッドは特別な数値を処理でき、要件に最適です。

おすすめ

転載: blog.51cto.com/15077562/2609666