NaN is incredibly useful, but I'm not so sure that 1/"a" = NaN is a great idea.
The correct though unintuitive way to check for NaN is `(x === x) === false`. NaN is a number per the IEEE 754.
The majority of Javascript WTFs are due to type coercion. Use triple equals and check your inputs to avoid.
var x = "a";
isNaN(x); // true
(x === x) === false // false
x = NaN
isNaN(x); // true
(x === x) === false // true