JavaScript で値が NaN かどうかを確認する
-
JavaScript で組み込みの
isNaN()
関数を使用して値がNaN
であるかどうかを確認する -
isNaN()
とparseFloat()
を組み合わせて、空の文字列を処理する -
値が
NaN
で JavaScript の比較演算子を使用してあるかどうかを確認する
JavaScript の NaN
値は、特に undefined
または Null
値と混同されることが多いため、言語の初心者を困惑させる可能性があります。NaN
は Not-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
を返します。
どちらの方法にもメリットがありますが、動作が異なることを知っておく必要があるため、同じコードベースに混在させないようにする必要があります。