UNPKG

948 BJavaScriptView Raw
1import isInteger from './isInteger';
2
3/** Used as references for various `Number` constants. */
4var MAX_SAFE_INTEGER = 9007199254740991;
5
6/**
7 * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754
8 * double precision number which isn't the result of a rounded unsafe integer.
9 *
10 * **Note:** This method is based on
11 * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).
12 *
13 * @static
14 * @memberOf _
15 * @since 4.0.0
16 * @category Lang
17 * @param {*} value The value to check.
18 * @returns {boolean} Returns `true` if `value` is a safe integer,
19 * else `false`.
20 * @example
21 *
22 * _.isSafeInteger(3);
23 * // => true
24 *
25 * _.isSafeInteger(Number.MIN_VALUE);
26 * // => false
27 *
28 * _.isSafeInteger(Infinity);
29 * // => false
30 *
31 * _.isSafeInteger('3');
32 * // => false
33 */
34function isSafeInteger(value) {
35 return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;
36}
37
38export default isSafeInteger;