JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptのisNaN()で不正な数値(NaN)をチェックする方法

JavaScriptでは、計算結果が有効な数値かどうかを確認したい場面がよくあります。そんなときに役立つのがグローバル関数のisNaN()です。この関数は、引数がNaN(Not-a-Number:非数)であればtrueを、有効な数値であればfalseを返します。

isNaN()を使った実装例

以下は、2つの値を掛け合わせた結果が有効な数値かどうかをisNaN()で判定し、コールバック関数を通じて結果とエラー情報を呼び出し元に返すサンプルコードです。

Example

function multiplication(firstValue, secondValue, callback) {
   var res = firstValue * secondValue;
   var err = isNaN(res) ? 'Something is wrong in input parameter' :
   undefined;
   callback(res, err);
}
multiplication(10, 50, function (result, error) {
   console.log("The multiplication result="+result);
   if (error) {
      console.log(error);
   }
});
multiplication('Sam', 5, function (result, error) {
   console.log("The multiplication result="+result);
   if (error) {
      console.log(error);
   }
});

上記のプログラムを実行するには、次のコマンドを使用します。

node fileName.js.

ここでは、ファイル名をdemo201.jsとしています。

実行結果

このプログラムを実行すると、以下のような出力が得られます。

PS C:\Users\Amit\javascript-code> node demo201.js
The multiplication result=500
The multiplication result=NaN
Something is wrong in input parameter

出力の解説

1つ目の呼び出しでは、10 × 50 = 500という有効な数値が計算されたため、エラーは発生していません。一方、2つ目の呼び出しでは文字列'Sam'を掛け算に渡しているため、結果はNaNになります。isNaN(res)trueを返すことで、変数errにエラーメッセージが代入され、コールバック内の条件分岐によって「入力パラメータに問題があります」というメッセージがコンソールに出力されます。

このようにisNaN()を活用することで、ユーザー入力や外部データなど不確定な値が含まれる計算でも、安全に異常を検知して適切に処理を分岐させることができます。

  1. JavaScriptでオブジェクトに特定のプロパティが存在するか確認する方法

    JavaScriptでオブジェクトのプロパティ存在を確認する方法 JavaScriptでは、オブジェクトに特定のプロパティが存在するかどうかを確認したい場面がよくあります。最も基本的な方法は、すべてのオブジェクトが持つhasOwnProperty()メソッドを使用することです。このメソッドは、指定したプロパティがオブジェクト自身に直接定義されている場合にtrueを返し、存在しない場合にはfalseを返します。 hasOwnProperty()メソッドの構文 object.hasOwnProperty(propertyName) propertyName: 存在を確認したいプロパティ名(文字列

  2. JavaScriptで入力値が数字か文字かを判定する方法【isNaN()関数の使い方】

    入力された値が数字か文字(数値以外)かを判定するには、JavaScriptのisNaN()関数を使用します。この関数は、値がNaN(Not a Number:非数)である場合にtrueを返します。この特性を利用することで、ユーザーが入力した値が数値かどうかを簡単にチェックできます。 isNaN()関数とは isNaN()は「is Not a Number」の略称です。引数として渡された値が数値として解釈できない場合にtrueを、数値として解釈できる場合はfalseを返します。これにより、「入力内容が数字かどうか」をシンプルに判定できるのが特徴です。 サンプルコード 以下のコードでは、フォームの