你不知道的 JavaScript 系列中( 9 ) - 安全整数
数字的呈现方式决定了 “整数” 的安全值范围远远小于 Number.MAX_VALUE(1.798e+308)。
能够被安全呈现的最大整数是:
2^53 - 1,即 9007199254740991,在 ES6 中被定义为 Number.MAX_SAFE_INTEGER。
最小整数 -9007199254740991,在 ES6 中被定义 Number.MIN_SAVE_INTEGER
检测一个值是否是整数,可以用 ES6 的 Number.isInteger() 方法:
Number.isInteger(42); // true Number.isInteger(42.00); // true Number.isInteger(42.3); // false
ES6 之前的版本 polyfill
if(!Number.isInteger) { Number.isInteger = function(num) { return typeof num == 'number' && num%1 == 0 } }
检测一个值是否是安全整数,可以使用 ES6 中的 Number.isSafeInteger() 方法:
Number.isSafeInteger(Number.MAX_SAFE_INTEGER); // true Number.isSafeInteger( Math.pow(2,53) ); // false Number.isSafeInteger( Math.pow(2,53)-1 ); // true
ES6 之前的版本 polyfill
if(!Number.isSafeInteger) { Number.isSafeInteger = function(num) { return Number.isInteger(num) && Math.abs( num ) <= Number.MAX_SAFE_INTEGER; } }