isNumber.js
 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;