4 ms·
Strings that arent numeric are type coerced into NaN. Using unary plus to coerce to number: +"2" is the primitive number 2 while +"a" is NaN and per the floatin
by grayrest 14y ago
Strings that arent numeric are type coerced into NaN. Using unary plus to coerce to number: +"2" is the primitive number 2 while +"a" is NaN and per the floating point spec, any arithmetic operation on NaN results in NaN.
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.
- some-1 14y agoNo, the correct way is to use the global function isNaN(x);
- grayrest 14y agoisNaN will return true for NaN and all values that coerce to it. The equals check will test ONLY for NaN itself: var x = "a"; isNaN(x); // true (x === x) === false // false x = NaN isNaN(x); // true (x === x) === false // true