JavaScriptでNaNと有限数を判定する: isNaN()とisFinite()の使い方
JavaScriptにおいて、数値が「Not-a-Number(NaN)」であるか、または有限数(finite number)であるかを判断することは非常に重要です。この記事では、isNaN()
メソッドとisFinite()
メソッドの使用方法とそれぞれの重要性について解説します。
isNaN(): 数値がNaNかどうかを判断
isNaN()
関数は、引数がNaNかどうかを判断します。
この関数は、計算結果が数値として不適切な場合に非常に役立ちます。以下の例では、isNaN()
の使用方法を示しています。
ソースコード例
1 2 3 |
console.log(isNaN(NaN)); // true console.log(isNaN("not a number")); // true console.log(isNaN(5)); // false |
このコードを実行すると、NaNと非数値の文字列に対してtrueが、数値に対してfalseが出力されます。
出力結果
true
true
false
isFinite(): 数値が有限数かどうかを判断
isFinite()
関数は、引数が有限数かどうかを判断します。無限大の数値やNaNの場合はfalseを返します。
これは、数値が有効な範囲内にあるかどうかをチェックするのに便利です。以下の例では、isFinite()
の使用方法を示しています。
ソースコード例
1 2 3 4 |
console.log(isFinite(Infinity)); // false console.log(isFinite(-Infinity)); // false console.log(isFinite(NaN)); // false console.log(isFinite(10)); // true |
このコードを実行すると、無限大とNaNに対してfalseが、有効な数値に対してtrueが出力されます。
出力結果
false
false
false
true
isNaN()とisFinite()の組み合わせ
isNaN()
とisFinite()
を組み合わせることで、数値が特定の条件を満たすかどうかをより詳細にチェックすることができます。
以下の例では、両方の関数を使って数値の妥当性を評価しています。
ソースコード例
1 2 3 4 5 6 7 8 |
function isValidNumber(value) { return !isNaN(value) && isFinite(value); } console.log(isValidNumber(5)); // true console.log(isValidNumber("5")); // false console.log(isValidNumber(Infinity)); // false console.log(isValidNumber(NaN)); // false |
この関数は、値が実際に数値であり、かつ有限である場合にtrueを返します。
出力結果
true
false
false
false
実践的な応用例
isNaN()
とisFinite()
は、ユーザー入力の検証やデータ処理において非常に有用です。
例えば、フォーム入力のバリデーションや数値データの前処理に使うことができます。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// ユーザー入力が有効な数値かどうかをチェック function isValidNumber(value) { return !isNaN(value) && isFinite(value); } function validateInput(input) { if (isValidNumber(input)) { console.log("有効な数値です"); } else { console.log("無効な数値です"); } } validateInput(100); // 有効な数値です validateInput("100px"); // 無効な数値です |
この関数は、ユーザーからの入力が適切な数値かどうかをチェックし、結果を出力します。
出力結果
"有効な数値です"
"無効な数値です"
KindleUnlimited会員であれば、全ての本をご覧頂けます。 アロー関数と便利な関数を理解すれば、JavaScriptの世界が変わる
まとめ
この記事では、JavaScriptのisNaN()
関数とisFinite()
関数の使い方とその重要性を解説しました。
これらの関数をうまく使えば、数値データの検証や処理をより正確かつ効率的に行うことができます。
最後まで読んで頂き、ありがとうございました。少しでもお役にたてたなら幸いです!