How to turn NaN from parseInt into 0 for an empty string?

Joper picture Joper · Jul 18, 2011 · Viewed 244.2k times · Source

Is it possible somehow to return 0 instead of NaN when parsing values in JavaScript?

In case of the empty string parseInt returns NaN.

Is it possible to do something like that in JavaScript to check for NaN?

var value = parseInt(tbb) == NaN ? 0 : parseInt(tbb)

Or maybe there is another function or jQuery plugin which may do something similar?

Answer

Matthew picture Matthew · Jul 18, 2011
var s = '';

var num = parseInt(s) || 0;

When not used with boolean values, the logical OR (||) operator returns the first expression (parseInt(s)) if it can be evaluated to true, otherwise it returns the second expression (0). The return value of parseInt('') is NaN. NaN evaluates to false, so num ends up being set to 0.