NaN

Check if number is NaN in javascript patch

Lango's picture

G'Day all

I was just wondering if anyone knows a clean way to check if a number is NaN.

I have tried 4 ways and only one returns true, but its a bit messy.

1/ (This way doesn't work)

var testNumber = NaN;
 
if (testNumber == undefined) // This returns false
   Log("testNumber is NaN"); 
else
   Log("testNumber was not detected as NaN)";

2/ (This way errors)

var testNumber = NaN;
 
if (isnan(testNumber)) // This errors as there is no isnan() method
   Log("testNumber is NaN"); 
else
   Log("testNumber was not detected as NaN)";

3/ (This way doesn't work)

var testNumber = NaN;
 
if (testNumber == NaN) // returns false
   Log("testNumber is NaN"); 
else
   Log("testNumber was not detected as NaN)";

4/ (This way works, but is not clean and makes me sad inside)

var testNumber = NaN;
var testNumber2 = testNumber || -9999;
 
if (testNumber == -9999) // returns true, as wanted.
   Log("testNumber is NaN"); 
else
   Log("testNumber was not detected as NaN)";

Anyone have any ideas?

Cheers

Lango