ホーム › エラー解決 › JavaScript › 計算結果がNaN
JavaScript ERROR

JavaScript 計算結果が NaN になる原因と解決法

NaNは「非数(Not a Number)」。文字列を数値として計算しようとしたときによく発生します。

このエラーメッセージ

結果: NaN

原因

❌ エラーになるコード

NG
const a = "10";
const b = "5";
console.log(a - b * 1, a + b);   // 引き算は動くが + は文字列連結

✅ 修正したコード

OK
const a = Number("10");
const b = Number("5");
console.log(a + b);   // 15
// 数値化できない場合の保険
const n = Number("abc");
console.log(Number.isNaN(n) ? 0 : n);
▶ 修正済みコードを実行エディタで開く
progoのJavaScript実行環境(インストール不要・登録不要)でその場で動作を確認できます。

解決のポイント

入力値は文字列なので、Number()やparseInt()で数値に変換してから計算します。+は文字列だと連結になる点に注意。NaN判定はNumber.isNaN()で行います(x === NaNは常にfalse)。

よくある質問

parseIntとNumberの違いは?
parseIntは先頭の数字だけ取り"12px"→12。Numberは全体が数字でないとNaNになります。
NaNかどうか調べたい
Number.isNaN(x) を使います。