| var isNumber = require('./isNumber'); |
| |
| /** |
| * Checks if `value` is `NaN`. |
| * |
| * **Note:** This method is based on |
| * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as |
| * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for |
| * `undefined` and other non-number values. |
| * |
| * @static |
| * @memberOf _ |
| * @since 0.1.0 |
| * @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 |
| */ |
| function isNaN(value) { |
| // An `NaN` primitive is the only value that is not equal to itself. |
| // Perform the `toStringTag` check first to avoid errors with some |
| // ActiveX objects in IE. |
| return isNumber(value) && value != +value; |
| } |
| |
| module.exports = isNaN; |