Hacker News new | ask | show | jobs
by jefftk 1497 days ago
Regular isNaN is very tricky, and almost never what you want: it first coerces its input to a Number, and then checks if that is NaN:

                isNaN   Number.isNaN
                -----   ------------
    {}           true          false
    [true]       true          false
    undefined    true          false
    "{}"         true          false
1 comments

But none of those things you listed are numbers. The isNaN output is exactly what I want in pretty much every case.
isNaN does not tell you whether something is not a Number either. Applying isNaN to any of these returns false: null, true, false, [], "", "cabbage".