What is is-nan?
The is-nan npm package is a simple utility that provides a reliable way to check if a value is NaN (Not-a-Number) in JavaScript. It is especially useful because it handles some edge cases that the global isNaN() function does not correctly address.
What are is-nan's main functionalities?
Check for NaN
This feature allows you to check if a value is NaN. It is more reliable than the native isNaN function because it correctly identifies only the values that are truly NaN, without coercion.
var isNaN = require('is-nan');
console.log(isNaN(NaN)); // true
console.log(isNaN('NaN')); // false
console.log(isNaN(0/0)); // true
Other packages similar to is-nan
lodash.isnan
Lodash provides a method called _.isNaN which is similar to is-nan. It checks if a value is NaN. Lodash's implementation is part of a larger utility library, which means it might be preferable if you're already using Lodash in your project.
number-is-nan
This package offers a polyfill for Number.isNaN, which is a standard method introduced in ES6. It is similar to is-nan but is specifically a polyfill for the Number.isNaN function, which is not available in older environments.
is-nan
ES2015-compliant shim for Number.isNaN - the global isNaN returns false positives.
This package implements the es-shim API interface. It works in an ES3-supported environment and complies with the spec.
Example
Number.isNaN = require('is-nan');
var assert = require('assert');
assert.notOk(Number.isNaN(undefined));
assert.notOk(Number.isNaN(null));
assert.notOk(Number.isNaN(false));
assert.notOk(Number.isNaN(true));
assert.notOk(Number.isNaN(0));
assert.notOk(Number.isNaN(42));
assert.notOk(Number.isNaN(Infinity));
assert.notOk(Number.isNaN(-Infinity));
assert.notOk(Number.isNaN('foo'));
assert.notOk(Number.isNaN(function () {}));
assert.notOk(Number.isNaN([]));
assert.notOk(Number.isNaN({}));
assert.ok(Number.isNaN(NaN));
Tests
Simply clone the repo, npm install
, and run npm test