JavaScriptで変数が数値かどうかを判断する方法
10330 ワード
概要
JavaScriptは、実行時に解釈器が変数のタイプを決定することを意味する動的タイプ言語です.実際には、同じコードで同じ変数を使用して異なるタイプのデータを格納することもできます.ドキュメントと一貫性がなければ、コードを使用するときに変数のタイプを常に知らないわけではありません.
変数が数値であることを望む場合、文字列または配列を操作すると、コードに奇妙な結果をもたらす可能性があります.本稿では、変数が数値であるか否かを判断する関数について説明します.
これらの要求に応じて、最も好ましく使用される関数は、内蔵
まず、いくつかの変数を作成します.
Numberを使用します.isFinite()関数
上記で定義した変数を使用して、次のことを確認します.
これはまさに私たちが望んでいるものです.特殊な非有限数および非数値タイプの変数は無視されます.したがって、変数が数値であるかどうかを確認するには、
Numberを使用します.isNaN()メソッド
標準
この方法はかなり緩やかです.数字ではない値を受け入れるからです.この方法は、一般的な数値検査ではなく、数値があることを知っていて、NaN値であるかどうかをチェックするときに最適です.
typeof()メソッドの使用 undefined boolean number string bigint symbol object null(typeof()objectを表示) function(特殊なタイプのobject) 変数が数値であるかどうかを検証するには、typeof()が返す値が`"number"であるかどうかを確認するだけです.変数をテストしてみましょう.
これは技術的には正しい結果であるが、
まとめ
この文書では、JavaScriptの変数が数値であるかどうかを確認する方法について学習しました.
コードに
JavaScriptは、実行時に解釈器が変数のタイプを決定することを意味する動的タイプ言語です.実際には、同じコードで同じ変数を使用して異なるタイプのデータを格納することもできます.ドキュメントと一貫性がなければ、コードを使用するときに変数のタイプを常に知らないわけではありません.
変数が数値であることを望む場合、文字列または配列を操作すると、コードに奇妙な結果をもたらす可能性があります.本稿では、変数が数値であるか否かを判断する関数について説明します.
"10"
のような数字の文字列は受け入れられない.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
が返される.上記で定義した変数を使用して、次のことを確認します.
> 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種類> 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()
メソッドは、すべての有限数をキャプチャし、私たちの要件に最適です.