ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript で変数が数値かどうかを判断する

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

coldplay.xixi
coldplay.xixi転載
2020-10-23 17:03:572840ブラウズ

TodayJavaScript変数が数値かどうかを判断する方法。

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()関数は、変数がは数値であり、制限値であるかどうかもチェックします。したがって、NaNInfinity、または -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 演算子 #! を使用します。

> !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() メソッドを使用する

typeof()関数は変数または値をパラメータとして受け取り、その型の文字列表現を返すグローバル関数です。 。 JavaScript には、合計 9

    未定義
  • boolean
  • number
  • string
  • があります。 bigint
  • symbol
  • object
  • null (typeof() は
  • object を表示します)
  • function (特殊なタイプのオブジェクト)
変数が数値であるかどうかを確認するには、

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() よりもはるかに優れています。文字列変数 nullunknown が数値ではないことを正しく判断します。ただし、NaN および Infinity の場合は、true を返します。

これは技術的には正しい結果ですが、

NaNInfinity は特別な数値であり、ほとんどのユースケースでは無視することをお勧めします。

概要

この記事では、JavaScript で変数が数値であるかどうかを確認する方法を学びました。 Number.isNaN()

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

コード内に

NaNInfinity、または -Infinity およびその他の数値がある場合、typeof()` 関数が適用されます。

Number.isFinite()このメソッドはすべての有限数をキャプチャし、要件に最も適しています。


コードをデプロイした後に発生する可能性のあるバグをリアルタイムで知ることは不可能です。これらのバグを後で解決するために、ログのデバッグに多くの時間を費やしました。便利なBUGをみんなにお勧めする監視ツールFundebug。

# 関連する無料学習の推奨事項:

javascript (ビデオ)

以上がJavaScript で変数が数値かどうかを判断するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjuejin.imで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。