JavaScriptで数字であるか判定する方法は?

JavaScriptで数字であるか判定する方法は?

JavaScriptで数字であるか判定する方法は?

isNaN() 関数は、JavaScript に組み込まれている関数です。isNaN() は、引数が数値でない場合に true を返し、数値の場合は false を返します。これによって、特定の値が数値か否かを判定することができます。

isNaN()関数の基本的な使い方

isNaN() 関数は非常にシンプルな構文を持っており、値が数値であるかどうかをチェックするために利用されます。次の例は基本的な使い方を示しています。

        var value = "123";
        if (isNaN(value)) {
            console.log("値は数値ではありません");
        } else {
            console.log("値は数値です");
        }
    

このコードは、文字列 "123" が数値に変換可能かを調べ、結果をコンソールに出力します。数値として認識されるため、"値は数値です"と表示されます。

数値かどうかを判定する理由

JavaScriptでは、入力バリデーションの一環として数値かどうかを判定することがよくあります。フォームの入力データが数値であることを保証するために重要です。

isNaN()の注意点

isNaN() 関数は一見便利に見えますが、注意が必要です。例えば、空文字列や空の配列も false を返すため、数値として認識されてしまいます。

        console.log(isNaN(""));    // false
        console.log(isNaN([]));     // false
    

これは開発者が注意を払うポイントであり、通常は additional checksを加える必要があります。

数値判定の別の方法:Number.isNaN()

ES6で導入された Number.isNaN() は、グローバルな isNaN() 関数とは異なり、より厳密な判定を行います。必ず Number の型である NaN に対してのみ true を返します。

        console.log(Number.isNaN(NaN));       // true
        console.log(Number.isNaN("NaN"));     // false
        console.log(Number.isNaN(123));       // false
    

Q&A

Q1: isNaN() と Number.isNaN() の違いは? A1: isNaN() は型変換を行ってから判定をしますが、Number.isNaN() は変換せずに厳密な判定を行います。
Q2: 練習問題として使えるコード例は? A2: 入力値が数値であるかどうかをチェックする関数を作成し、さまざまな入力に対してテストしてみてください。
Q3: 他に数値判定の方法はありますか? A3: 正規表現を使用して、文字列が数値で構成されているかをチェックする方法もあります。

その他の参考記事:javascript 数字 チェック