function isNaN(value) {
      // `NaN` as a primitive is the only value that is not equal to itself
      // (perform the `[[Class]]` check first to avoid errors with some host objects in IE)
      return isNumber(value) && value != +value;
    }
Checks if `value` is `NaN`.

**Note:** This method is not the same as native `isNaN` which returns `true`
for `undefined` and other non-numeric values. See the [ES5 spec](http://es5.github.io/#x15.1.2.4)
for more details.

@static
@memberOf _
@category Lang
@param {*} value The value to check.
@returns {boolean} Returns `true` if `value` is `NaN`, else `false`.
@example

_.isNaN(NaN);
// => true

_.isNaN(new Number(NaN));
// => true

isNaN(undefined);
// => true

_.isNaN(undefined);
// => false