NaN is often the result of meaningless or invalid math computations, so it doesn't make sense for two
NaN values to be considered equal.
const x = Math.sqrt(-1); // NaN const y = 0 / 0; // NaN x === y; // false x === NaN; // false Number.isNaN(x); // true Number.isNaN(y); // true isNaN(x); // true isNan('hello'); // true
You can check for
NaN values using the
Number.isNaN() function. Note that this is different from the original , global
isNaN(). Their difference lies in the fact that
isNaN() forcefully converts its argument to a number, whereas
Number.isNaN() doesn't. This is why
Number.isNaN() is considered more robust and preferable in most cases.
Written by Angelos Chalaris
If you want to keep in touch, follow me on GitHub or Twitter.