JavaScript で値が NaN かどうかを確認する

Alex Dulcianu 2023年10月12日
  1. JavaScript で組み込みの isNaN() 関数を使用して値が NaN であるかどうかを確認する
  2. isNaN()parseFloat() を組み合わせて、空の文字列を処理する
  3. 値が NaN で JavaScript の比較演算子を使用してあるかどうかを確認する
JavaScript で値が NaN かどうかを確認する

JavaScript の NaN 値は、特に undefined または Null 値と混同されることが多いため、言語の初心者を困惑させる可能性があります。NaNNot-a-Number の頭字語であり、その目的を明確にしています。

JavaScript は、異なる未定義の値を区別することを困難にする可能性があります。ブール演算には、NaN 値を扱う際に注意しなければならないいくつかの問題があります。

特定の値が NaN タイプであるかどうかを確認する必要がある場合があります。そのため、値が NaN であるかどうかを確認するために使用できるいくつかの方法があります。

JavaScript で組み込みの isNaN() 関数を使用して値が NaN であるかどうかを確認する

このチェックを実行する最も便利な方法の 1つは、標準ライブラリメソッド isNaN() を使用することです。指定した値が NaN の場合、この関数の戻り値は true になります。これをコードで使用する方法の例を次に示します。

let myvar_1 = 'dog';
let myvar_2 = '2';

console.log(isNaN(myvar_1));
console.log(isNaN(myvar_2));

出力:

true
false

isNaN()parseFloat() を組み合わせて、空の文字列を処理する

上記のように、注意しなければならないいくつかの落とし穴があります。それらの 1つには空の文字列が含まれ、isNaN() 関数を使用すると false が返されます。次に例を示します。

let myvar_1 = '';

console.log(isNaN(myvar_1));

出力:

false

当然、この場合、それはおそらくあなたが望む結果ではありません。これらのケースを適切に処理するために、次のように isNaN() 関数内に parseFloat() メソッドを追加できます。

let myvar_1 = '';

console.log(isNaN(parseFloat(myvar_1)));

出力:

true

値が NaN で JavaScript の比較演算子を使用してあるかどうかを確認する

次の方法は、上記の方法よりもさらに高速であり、必要なコードも少なくて済みます。一方で、適切に保守および文書化することが難しい場合があることは言うまでもなく、もう少し混乱します。

つまり、JavaScript の NaN 値は、それ自体と等しくない唯一の値です。このため、簡単な比較で、関心のある値が NaN であるかどうかを簡単に知ることができます。仕組みは次のとおりです。

let myvar_1 = NaN;
let myvar_2 = 'dog';
let myvar_3 = '2';

console.log(myvar_1 !== myvar_1);
console.log(myvar_2 !== myvar_2);
console.log(myvar_3 !== myvar_3);

出力:

true
false
false

このメソッドは、isNaN() 関数とは動作が異なります。前の例では、数値として解析できる文字列は数値と見なされます。比較演算子を使用している場合、同じ文字列は数値として解析されません。この特定の例は、値が NaN として明確に定義されている場合にのみ true を返します。

どちらの方法にもメリットがありますが、動作が異なることを知っておく必要があるため、同じコードベースに混在させないようにする必要があります。

関連記事 - JavaScript Variable