UNPKG

886 BJavaScriptView Raw
1var baseGetTag = require('./_baseGetTag'),
2 isObjectLike = require('./isObjectLike');
3
4/** `Object#toString` result references. */
5var 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 */
33function isNumber(value) {
34 return typeof value == 'number' ||
35 (isObjectLike(value) && baseGetTag(value) == numberTag);
36}
37
38module.exports = isNumber;