数値への型変換でたびたび現れるNaN
という値。これについて解説します。
NaNとは?
NaN
は、Not a Numberの略称で、特殊な性質を持つNumber型のデータです。数値として解釈できないことを示します。通常、数値を期待する演算子や関数に対して、数値でない値が渡された場合にNaNが返されます。
NaNは、以下のような演算によって生成される場合があります。
- 0を0で割る
- 数値でない文字列を数値として解釈する
- 関数が値を返さない場合に、値が未定義(undefined)となり、数値として解釈できなくなる
以下は、NaNが返される例です。
console.log(0 / 0); // NaN
console.log(Math.sqrt(-1)); // NaN
console.log(parseInt('hello')); // NaN
NaNは、値が不正なことを示すため、エラーの原因として特定することができます。isNaN()関数を使用して、値がNaNであるかどうかをチェックすることもできます。
console.log(isNaN(NaN)); // true
console.log(isNaN(10)); // false
console.log(isNaN('hello')); // true
ただし、isNaN()関数は、引数が数値でない場合にもtrueを返すため、注意が必要です。例えば、空文字列や空のオブジェクトもNaNと判定されます。