Learn more  » Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Bower components Debian packages RPM packages NuGet packages

skava / exotic   js

Repository URL to install this package:

Version: 2.0.8 

/ src / types / primitive / nil / isReal.ts

import isNotEhNumber from '../number/check/isNaN'
import isNullOrUndefined from './isNullOrUndefined'

/**
 * @desc ensure a value is not nill, or nan
 * @param {*} x value
 * @return {boolean} x isReal
 *
 * @since 3.0.0
 * @memberOf is
 * @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
 *
 * @func
 * @name isReal
 * @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
 *
 */
const isReal = (x: any) => !isNullOrUndefined(x) && !isNotEhNumber(x)

export { isReal }
export default isReal