Convert NaN to 0 in JavaScript
javascript
Solution
You can do this:
a = a || 0
...which will convert a from any "falsey" value to `0`.
The "falsey" values are:
- `false`
- `null`
- `undefined`
- `0`
- `""` ( empty string )
- `NaN` ( Not a Number )
Or this if you prefer:
a = a ? a : 0;
...which will have the same effect as above.
If the intent was to test for more than just `NaN`, then you can do the same, but do a toNumber conversion first.
a = +a || 0
This uses the unary + operator to try to convert `a` to a number. This has the added benefit of converting things like numeric strings `'123'` to a number.
The only unexpected thing may be if someone passes an Array that can successfully be converted to a number:
+['123'] // 123
Here we have an Array that has a single member that is a numeric string. It will be successfully converted to a number.
Problem
Is there a way to convert NaN values to 0 without an if statement? Example: ``` if (isNaN(a)) a = 0; ``` It is very annoying to check my variables every time.