JavaScriptで変数が数値かどうかを判断する方法


概要
JavaScriptは、実行時に解釈器が変数のタイプを決定することを意味する動的タイプ言語です.実際には、同じコードで同じ変数を使用して異なるタイプのデータを格納することもできます.ドキュメントと一貫性がなければ、コードを使用するときに変数のタイプを常に知らないわけではありません.
変数が数値であることを望む場合、文字列または配列を操作すると、コードに奇妙な結果をもたらす可能性があります.本稿では、変数が数値であるか否かを判断する関数について説明します."10"のような数字の文字列は受け入れられない.JavaScriptでは、NaNInfinity-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が返される.
上記で定義した変数を使用して、次のことを確認します.
> 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

これはまさに私たちが望んでいるものです.特殊な非有限数および非数値タイプの変数は無視されます.したがって、変数が数値であるかどうかを確認するには、false関数を使用するのが最善です.
Numberを使用します.isNaN()メソッド
標準Number.isFinite()オブジェクトにはNumberメソッドがあります.パラメータを受け入れ、その値がisNaN()であるかどうかを決定します.変数が数値であるかどうかを確認したいので、チェックでは非オペレータを使用します.
> !Number.isNaN(intVar);
true
> !Number.isNaN(floatVar);
true
> !Number.isNaN(stringVar);
true # Wrong
> !Number.isNaN(nanVar);
false
> !Number.isNaN(infinityVar);
true # Wrong
> !Number.isNaN(nullVar);
true # Wrong
> !Number.isNaN(undefinedVar);
true #

この方法はかなり緩やかです.数字ではない値を受け入れるからです.この方法は、一般的な数値検査ではなく、数値があることを知っていて、NaN値であるかどうかをチェックするときに最適です.
typeof()メソッドの使用NaN関数は、変数または値をパラメータとして受け入れ、そのタイプの文字列表現を返すグローバル関数です.typeof()合計9種類
  • undefined
  • boolean
  • number
  • string
  • bigint
  • symbol
  • object
  • null(typeof()objectを表示)
  • function(特殊なタイプのobject)
  • 変数が数値であるかどうかを検証するには、typeof()が返す値が`"number"であるかどうかを確認するだけです.変数をテストしてみましょう.
    > typeof(intVar) == 'number';
    true
    > typeof(floatVar) == 'number';
    true
    > typeof(stringVar) == 'number';
    false
    > typeof(nanVar) == 'number';
    true # Wrong
    > typeof(infinityVar) == 'number';
    true # Wrong
    > typeof(nullVar) == 'number';
    false
    > typeof(undefined) == 'number';
    false
    
    JavaScript関数のパフォーマンスはtypeof()よりずっと優れています.文字列変数Number.isNaN()およびnullが数値ではないことを正しく決定します.ただし、undefinedおよびNaNについては、Infinityが返される.
    これは技術的には正しい結果であるが、trueおよびNaNは特殊な数値であり、多くの使用状況では無視したほうがよい.
    まとめ
    この文書では、JavaScriptの変数が数値であるかどうかを確認する方法について学習しました.Infinity関数は、変数が数値であることを知っていて、Number.isNaN()であるかどうかを検証する必要がある場合にのみ適用されます.
    コードにNaN,NaNまたはInfinityおよびその他の数字がある場合は、-Infinity関数が適用されます.typeof()メソッドは、すべての有限数をキャプチャし、私たちの要件に最適です.