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 数字 チェック