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.

Original source

Related problems