ホームページ > 記事 > ウェブフロントエンド > JavaScript で変数が数値かどうかを判断する
TodayJavaScript変数が数値かどうかを判断する方法。
#誰もが履歴書に書くプロジェクトがないと言うので、私はプロジェクトを見つけるのを手伝いました。
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()
関数は、変数がは数値であり、制限値であるかどうかもチェックします。したがって、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()
メソッドがあります。パラメーターを受け入れ、その値が NaN
であるかどうかを判断します。変数が数値であるかどうかをチェックしたいため、チェックでは not 演算子 #! を使用します。
> !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 # Wrong复制代码このメソッドは、数値ではない値を受け入れるため、非常に寛容です。このアプローチは、一般的な数値チェックではなく、数値があることがわかっていて、それが
NaN 値であるかどうかをチェックしたい場合に最も効果的です。
typeof()関数は変数または値をパラメータとして受け取り、その型の文字列表現を返すグローバル関数です。 。 JavaScript には、合計
9 型
を表示します)
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复制代码
typeof() この関数のパフォーマンスは、
Number.isNaN() よりもはるかに優れています。文字列変数
null と
unknown が数値ではないことを正しく判断します。ただし、
NaN および
Infinity の場合は、
true を返します。
NaN と
Infinity は特別な数値であり、ほとんどのユースケースでは無視することをお勧めします。
関数は、変数が数値であることがわかっていて、それが NaN` であるかどうかを確認する必要がある場合にのみ適用されます。
NaN、
Infinity、または
-Infinity およびその他の数値がある場合、typeof()` 関数が適用されます。
Number.isFinite()このメソッドはすべての有限数をキャプチャし、要件に最も適しています。
コードをデプロイした後に発生する可能性のあるバグをリアルタイムで知ることは不可能です。これらのバグを後で解決するために、ログのデバッグに多くの時間を費やしました。便利なBUGをみんなにお勧めする監視ツールFundebug。
# 関連する無料学習の推奨事項:javascript (ビデオ)
以上がJavaScript で変数が数値かどうかを判断するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。