foop
Version:
interfaces that describe their intentions.
53 lines (51 loc) • 3.56 kB
JavaScript
var toS = require('./toS')
var isNumberPrimitive = require('./numberPrimitive')
/**
* @since 3.0.0
* @memberOf is
*
* @param {*} x value
* @return {boolean} isNumber
*
* @func
* @name isNumber
* @extends numberPrimitive
* @variation also returns true for new Number object
*
* {@link https://github.com/infernojs/inferno/blob/master/packages/inferno-shared/src/index.ts#L23 inferno-isnumber}
* {@link http://stackoverflow.com/questions/18082/validate-decimal-numbers-in-javascript-isnumeric stack-overflow-isnumber}
* {@link https://github.com/gcanti/tcomb/blob/master/lib/isNumber.js tcomb-isnumber}
* @see {@link stack-overflow-isnumber}
* @see {@link tcomb-isnumber}
* @see {@link inferno-isnumber}
* @see is/real
*
* @alternate !isNaN(parseFloat(n)) && isFinite(n)
*
* @example
*
* isNumber(1)
* //=> true
* isNumber(new Number(1))
* //=> true
* isNumber(Number(1))
* //=> true
* isNumber(NaN)
* //=> true
*
* isNumber(null)
* //=> false
* isNumber(undefined)
* //=> false
* isNumber(void 0)
* //=> false
* isNumber({})
* //=> false
* isNumber('')
* //=> false
* isNumber(false)
* //=> false
*
*/
module.exports = function (x) { return isNumberPrimitive(x) || toS(x) === '[object Number]'; }
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLmpzIiwic291cmNlcyI6WyJudW1iZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgdG9TID0gcmVxdWlyZSgnLi90b1MnKVxuY29uc3QgaXNOdW1iZXJQcmltaXRpdmUgPSByZXF1aXJlKCcuL251bWJlclByaW1pdGl2ZScpXG5cbi8qKlxuICogQHNpbmNlIDMuMC4wXG4gKiBAbWVtYmVyT2YgaXNcbiAqXG4gKiBAcGFyYW0geyp9IHggdmFsdWVcbiAqIEByZXR1cm4ge2Jvb2xlYW59IGlzTnVtYmVyXG4gKlxuICogQGZ1bmNcbiAqIEBuYW1lIGlzTnVtYmVyXG4gKiBAZXh0ZW5kcyBudW1iZXJQcmltaXRpdmVcbiAqIEB2YXJpYXRpb24gYWxzbyByZXR1cm5zIHRydWUgZm9yIG5ldyBOdW1iZXIgb2JqZWN0XG4gKlxuICoge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9pbmZlcm5vanMvaW5mZXJuby9ibG9iL21hc3Rlci9wYWNrYWdlcy9pbmZlcm5vLXNoYXJlZC9zcmMvaW5kZXgudHMjTDIzIGluZmVybm8taXNudW1iZXJ9XG4gKiB7QGxpbmsgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xODA4Mi92YWxpZGF0ZS1kZWNpbWFsLW51bWJlcnMtaW4tamF2YXNjcmlwdC1pc251bWVyaWMgc3RhY2stb3ZlcmZsb3ctaXNudW1iZXJ9XG4gKiB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2djYW50aS90Y29tYi9ibG9iL21hc3Rlci9saWIvaXNOdW1iZXIuanMgdGNvbWItaXNudW1iZXJ9XG4gKiBAc2VlIHtAbGluayBzdGFjay1vdmVyZmxvdy1pc251bWJlcn1cbiAqIEBzZWUge0BsaW5rIHRjb21iLWlzbnVtYmVyfVxuICogQHNlZSB7QGxpbmsgaW5mZXJuby1pc251bWJlcn1cbiAqIEBzZWUgaXMvcmVhbFxuICpcbiAqIEBhbHRlcm5hdGUgIWlzTmFOKHBhcnNlRmxvYXQobikpICYmIGlzRmluaXRlKG4pXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiAgaXNOdW1iZXIoMSlcbiAqICAvLz0+IHRydWVcbiAqICBpc051bWJlcihuZXcgTnVtYmVyKDEpKVxuICogIC8vPT4gdHJ1ZVxuICogIGlzTnVtYmVyKE51bWJlcigxKSlcbiAqICAvLz0+IHRydWVcbiAqICBpc051bWJlcihOYU4pXG4gKiAgLy89PiB0cnVlXG4gKlxuICogIGlzTnVtYmVyKG51bGwpXG4gKiAgLy89PiBmYWxzZVxuICogIGlzTnVtYmVyKHVuZGVmaW5lZClcbiAqICAvLz0+IGZhbHNlXG4gKiAgaXNOdW1iZXIodm9pZCAwKVxuICogIC8vPT4gZmFsc2VcbiAqICBpc051bWJlcih7fSlcbiAqICAvLz0+IGZhbHNlXG4gKiAgaXNOdW1iZXIoJycpXG4gKiAgLy89PiBmYWxzZVxuICogIGlzTnVtYmVyKGZhbHNlKVxuICogIC8vPT4gZmFsc2VcbiAqXG4gKi9cbm1vZHVsZS5leHBvcnRzID0geCA9PiBpc051bWJlclByaW1pdGl2ZSh4KSB8fCB0b1MoeCkgPT09ICdbb2JqZWN0IE51bWJlcl0nXG4iXSwibmFtZXMiOlsiY29uc3QiXSwibWFwcGluZ3MiOiJBQUFBQSxHQUFLLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7QUFDNUJBLEdBQUssQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLENBQUMsbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFpRHRELE1BQU0sQ0FBQyxPQUFPLEdBQUcsVUFBQSxDQUFDLENBQUEsQ0FBQyxBQUFHLFNBQUEsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLGlCQUFpQixHQUFBOyJ9