In JavaScript, the Number.isSafeInteger() method is used to determine if a given number is a “safe integer” or not. A safe integer is defined as one that can be exactly represented as an integer, without any loss of precision.
While a number may satisfy the Number.isInteger() method, it may not necessarily be considered a safe integer if it exceeds the boundaries of safe integers.
The boundaries of safe integers in JavaScript are defined as anything greater than 2^53
or less than -2^53
. Any number outside of this range is considered unsafe.
To demonstrate the usage of the isSafeInteger() method, consider the following examples:
Number.isSafeInteger(Math.pow(2, 53)); // false
Number.isSafeInteger(Math.pow(2, 53) - 1); // true
Number.isSafeInteger(Math.pow(2, 53) + 1); // false
Number.isSafeInteger(-Math.pow(2, 53)); // false
Number.isSafeInteger(-Math.pow(2, 53) - 1); // false
Number.isSafeInteger(-Math.pow(2, 53) + 1); // true
In the above examples, we are using the Math.pow() method to generate numbers that are near the boundaries of safe integers. As you can see, only the number Math.pow(2, 53) - 1
and -Math.pow(2, 53) + 1
are considered safe integers.
By utilizing the isSafeInteger() method, you can ensure that the numbers you are working with fall within the boundaries of safe integers to avoid any potential loss of precision.