UNPKG

go-types

Version:

Type-checking utilities for JavaScript

31 lines (29 loc) 1.15 kB
var MAX_SAFE_INTEGER = 9007199254740991; var isInteger = require("./isInteger"); /** * Determines whether the value is a safe integer (a primitive number or <code>Number</code> object). * A safe integer is an integer that: * - can be exactly represented as an IEEE-754 double precision number, and * - whose IEEE-754 representation cannot be the result of rounding any other integer to fit the IEEE-754 representation. * @param {*} value The value to check. * @returns {boolean} <code>true</code> if the value is a safe integer; <code>false</code> otherwise. * @example <caption>Safe integer values</caption> * // returns true * isSafeInteger(1); * isSafeInteger(Number.MAX_SAFE_INTEGER); * isSafeInteger(Number.MIN_SAFE_INTEGER); * @example <caption>Non-safe-integer values</caption> * // returns false * isSafeInteger(0.1); * isSafeInteger("1"); * isSafeInteger(Number.MIN_SAFE_INTEGER - 1); * isSafeInteger(NaN); * @see Number.isSafeInteger * @since 1.1.0 * @memberof Number * @static */ function isSafeInteger(value) { return isInteger(value) && Math.abs(value) <= MAX_SAFE_INTEGER; } module.exports = isSafeInteger;