time-to-botec

Benchmark sampling in different programming languages
Log | Files | Refs | README

isNumber.js (886B)


      1 var baseGetTag = require('./_baseGetTag'),
      2     isObjectLike = require('./isObjectLike');
      3 
      4 /** `Object#toString` result references. */
      5 var numberTag = '[object Number]';
      6 
      7 /**
      8  * Checks if `value` is classified as a `Number` primitive or object.
      9  *
     10  * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are
     11  * classified as numbers, use the `_.isFinite` method.
     12  *
     13  * @static
     14  * @memberOf _
     15  * @since 0.1.0
     16  * @category Lang
     17  * @param {*} value The value to check.
     18  * @returns {boolean} Returns `true` if `value` is a number, else `false`.
     19  * @example
     20  *
     21  * _.isNumber(3);
     22  * // => true
     23  *
     24  * _.isNumber(Number.MIN_VALUE);
     25  * // => true
     26  *
     27  * _.isNumber(Infinity);
     28  * // => true
     29  *
     30  * _.isNumber('3');
     31  * // => false
     32  */
     33 function isNumber(value) {
     34   return typeof value == 'number' ||
     35     (isObjectLike(value) && baseGetTag(value) == numberTag);
     36 }
     37 
     38 module.exports = isNumber;