1. ホーム
  2. ジャバスクリプト

[解決済み】javascriptでNaNを0に変換する。

2022-04-14 22:08:03

質問

if文なしでNaN値を0に変換する方法はありますか?

if (isNaN(a)) a = 0;

いちいち変数を確認するのがとても面倒です。

解決方法は?

こんなことができます。

a = a || 0

...これは、任意の "falsey" 値から、次のように変換します。 0 .

"falsey"の値は、以下の通りです。

  • false
  • null
  • undefined
  • 0
  • "" ( 空の文字列 )
  • NaN ( Not a Number )

お好みでこれでもか。

a = a ? a : 0;

...これは上記と同じ効果になります。


をテストする意図があるのであれば、そのテストは NaN であれば、同じように に変換する。

a = +a || 0

これは単項演算子 + を使って a を数値に変換します。これは、数値文字列のようなものを変換するという利点があります。 '123' を数値に変換します。

唯一予想外なのは、誰かがうまく数値に変換できるArrayを渡した場合かもしれません。

+['123']  // 123

ここでは、数値文字列を1つのメンバーとするArrayを用意しています。これは正常に数値に変換されます。