JavaScriptでNaNに遭遇した際の原因と対策を解説!

記事
IT・テクノロジー
JavaScriptで「NaN」というエラーに遭遇したことはありますか?このエラーは、**「Not a Number」**の略で、数値として扱えない値が発生した際に表示されます。

この記事では、NaNが発生する主な原因と、その対策方法について解説します。

NaNが発生する主な原因
数値に変換できない文字列:

例:`parseInt("abc")`、`Number("hello")`

演算子の誤用:

例:`10 / "abc"`、`10 - "hello"`

比較演算子の誤用:

例:`NaN === NaN` (NaNは自身と等しくありません)

関数の戻り値がNaN:

例:`Math.sqrt(-1)` (平方根の計算で負の値)

変数の初期化がされていない:

例:`let x; console.log(x + 10);` (xは未定義のためNaNになる)

NaNを解決するための対策
数値に変換する前に文字列の妥当性をチェック:

`isNaN()`関数で数値に変換可能かどうかを確認できます。

例:`if (!isNaN(parseInt("123"))) { ... }`

演算子を使用する前に数値に変換:

`parseInt()`や`parseFloat()`関数で文字列を数値に変換します。

例:`10 / parseInt("10")`

NaNの比較には`isNaN()`関数を使用:

`NaN === NaN`は常にfalseを返します。

例:`if (isNaN(value)) { ... }`

関数の戻り値がNaNになる可能性を考慮:

関数内でエラー処理を行い、NaNを返さないようにします。

例:`if (value < 0) { return null; } else { return Math.sqrt(value); }`

変数を初期化する:

変数を宣言する際に初期値を設定します。

例:`let x = 0; console.log(x + 10);`

まとめ
NaNは、JavaScriptで数値計算を行う際に発生する可能性のあるエラーです。原因を理解し、適切な対策を講じることで、スムーズにプログラム開発を進めることができます。

サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す ココナラコンテンツマーケット ノウハウ記事・テンプレート・デザイン素材はこちら