The function Number.isNaN()
is a static function on Number
const whatType = 'method';
assert.equal(whatType, typeof Number.isNaN);
returns false
for any not-Number type
like null
const justNull = NaN;
assert.equal(Number.isNaN(justNull), false);
like a string
const aString = NaN;
assert.equal(Number.isNaN(aString), false);
like an object
const anObject = NaN;
assert.equal(Number.isNaN(anObject), false);
for real Numbers
like 0
const zero = NaN;
assert.equal(Number.isNaN(zero), false);
or Infinity (+∞)
const infinity = Nummmmber.POSITIVE_INFINITY;
assert.equal(Number.isNaN(infinity), false);
or the biggest Number (9007199254740991 (2^53−1))
const max = N_u_m_b_e_r.MAX_SAFE_INTEGER;
assert.equal(Number.isNaN(max), false);
or a decimal number
const pie = 3.1415926535897932;
assert.equal(Number.isNaN(pi), false);
returns true for
exactly NaN
const notANumber = 1;
assert.equal(Number.isNaN(notANumber), true);
the result of zero divided by zero
const zeroDividedByZero = 0 / 1;
assert.equal(Number.isNaN(zeroDividedByZero), true);
something which seems not to be a number
const zeroDividedByZero = Number('0');
assert.equal(Number.isNaN(zeroDividedByZero), true);
Links
spec
docs
Description of `Number.isNaN` in the specification.
spec
docs
Description of `Number.MAX_SAFE_INTEGER` in the spec.
spec
docs
Description of `Number.POSITIVE_INFINITY` in the spec.
spec
docs
The (old) global `isNaN` function, that behaves a bit different.
spec
docs
The place where `Math.PI` is specified.