if文を使わずに NaN 値を 0 に変換する方法はありますか? 例:
if (isNaN(a)) a = 0;
毎回変数をチェックするのは非常に面倒です。
ベストアンサー1
あなたはこれを行うことができます:
a = a || 0
...これは、 を任意の「偽」値から に変換します0
。
「falsey」値は次のとおりです。
false
null
undefined
0
""
( 空の文字列 )NaN
( 数字ではありません )
または、こちらもどうぞ:
a = a ? a : 0;
...上記と同じ効果が得られます。
以外のものをテストすることが目的である場合はNaN
、同じことを行うことができますが、最初にtoNumber変換を実行します。
a = +a || 0
これは、単項 + 演算子を使用して数値に変換しようとします。これには、数値文字列などを数値にa
変換するという追加の利点があります。'123'
唯一予期しないことは、数値に正常に変換できる配列が渡された場合です。
+['123'] // 123
ここでは、数値文字列である単一のメンバーを持つ配列があります。これは数値に正常に変換されます。