【JavaScript】NaNって何?

数値への型変換でたびたび現れる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と判定されます。

タイトルとURLをコピーしました