chain-able
Version:
interfaces that describe their intentions.
53 lines (51 loc) • 3.09 kB
JavaScript
var isNullOrUndefined = require('./nullOrUndefined')
/**
* @param {*} x value
* @return {boolean} isReal
*
* @since 3.0.0
* @memberOf is
* @func isReal
* @see is/null
* @see is/undefined
*
* @see http://2ality.com/2013/04/quirk-implicit-conversion.html
* @see https://javascriptrefined.io/nan-and-typeof-36cd6e2a4e43
* @see https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/isNaN
*
* @NOTE eslint-disable-next-line no-self-compare
* && x !== x
*
* @extends isNullOrUndefined
* @variation *not* isNullOrUndefined && false for NaN
*
* @example
*
* isReal(null)
* //=> false
* isReal(void 0)
* //=> false
* const nan = Number(undefined)
* isReal(nan)
* //=> false
*
* isReal({eh: true})
* //=> true
* isReal({})
* //=> true
* isReal(Object)
* //=> true
* isReal([])
* //=> true
* isReal(new Set())
* //=> true
* isReal(function() {})
* //=> true
* isReal('')
* //=> true
* isReal(1)
* //=> true
*
*/
module.exports = function (x) { return !isNullOrUndefined(x) && !Number.isNaN(x); }
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhbC5qcyIsInNvdXJjZXMiOlsicmVhbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBpc051bGxPclVuZGVmaW5lZCA9IHJlcXVpcmUoJy4vbnVsbE9yVW5kZWZpbmVkJylcblxuLyoqXG4gKiBAcGFyYW0gIHsqfSB4IHZhbHVlXG4gKiBAcmV0dXJuIHtib29sZWFufSBpc1JlYWxcbiAqXG4gKiBAc2luY2UgMy4wLjBcbiAqIEBtZW1iZXJPZiBpc1xuICogQGZ1bmMgaXNSZWFsXG4gKiBAc2VlIGlzL251bGxcbiAqIEBzZWUgaXMvdW5kZWZpbmVkXG4gKlxuICogQHNlZSBodHRwOi8vMmFsaXR5LmNvbS8yMDEzLzA0L3F1aXJrLWltcGxpY2l0LWNvbnZlcnNpb24uaHRtbFxuICogQHNlZSBodHRwczovL2phdmFzY3JpcHRyZWZpbmVkLmlvL25hbi1hbmQtdHlwZW9mLTM2Y2Q2ZTJhNGU0M1xuICogQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9pc05hTlxuICpcbiAqIEBOT1RFIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmVcbiAqICAgICAgICYmIHggIT09IHhcbiAqXG4gKiBAZXh0ZW5kcyBpc051bGxPclVuZGVmaW5lZFxuICogQHZhcmlhdGlvbiAqbm90KiBpc051bGxPclVuZGVmaW5lZCAmJiBmYWxzZSBmb3IgTmFOXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiAgaXNSZWFsKG51bGwpXG4gKiAgLy89PiBmYWxzZVxuICogIGlzUmVhbCh2b2lkIDApXG4gKiAgLy89PiBmYWxzZVxuICogIGNvbnN0IG5hbiA9IE51bWJlcih1bmRlZmluZWQpXG4gKiAgaXNSZWFsKG5hbilcbiAqICAvLz0+IGZhbHNlXG4gKlxuICogIGlzUmVhbCh7ZWg6IHRydWV9KVxuICogIC8vPT4gdHJ1ZVxuICogIGlzUmVhbCh7fSlcbiAqICAvLz0+IHRydWVcbiAqICBpc1JlYWwoT2JqZWN0KVxuICogIC8vPT4gdHJ1ZVxuICogIGlzUmVhbChbXSlcbiAqICAvLz0+IHRydWVcbiAqICBpc1JlYWwobmV3IFNldCgpKVxuICogIC8vPT4gdHJ1ZVxuICogIGlzUmVhbChmdW5jdGlvbigpIHt9KVxuICogIC8vPT4gdHJ1ZVxuICogIGlzUmVhbCgnJylcbiAqICAvLz0+IHRydWVcbiAqICBpc1JlYWwoMSlcbiAqICAvLz0+IHRydWVcbiAqXG4gKi9cbm1vZHVsZS5leHBvcnRzID0geCA9PiAhaXNOdWxsT3JVbmRlZmluZWQoeCkgJiYgIU51bWJlci5pc05hTih4KVxuIl0sIm5hbWVzIjpbImNvbnN0Il0sIm1hcHBpbmdzIjoiQUFBQUEsR0FBSyxDQUFDLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrRHRELE1BQU0sQ0FBQyxPQUFPLEdBQUcsVUFBQSxDQUFDLENBQUEsQ0FBQyxBQUFHLFNBQUEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUE7In0=