小兔网

数值的表示

二进制表示法新写法: 前缀 0b 或 0B 。

console.log(0b11 === 3); // trueconsole.log(0B11 === 3); // true

八进制表示法新写法: 前缀 0o 或 0O 。

console.log(0o11 === 9); // trueconsole.log(0O11 === 9); // true

常量

Number.EPSILON

Number.EPSILON 属性表示 1 与大于 1 的最小浮点数之间的差。

它的值接近于 2.2204460492503130808472633361816E-16,或者 2-52。

测试数值是否在误差范围内:

0.1 + 0.2 === 0.3; // false// 在误差范围内即视为相等equal = (Math.abs(0.1 - 0.3 + 0.2) < Number.EPSILON); // true

属性特性

writable:falseenumerable:falseconfigurable:false

最大/最小安全整数

安全整数

安全整数表示在 JavaScript 中能够精确表示的整数,安全整数的范围在 2 的 -53 次方到 2 的 53 次方之间(不包括两个端点),超过这个范围的整数无法精确表示。

最大安全整数

安全整数范围的上限,即 2 的 53 次方减 1 。

Number.MAX_SAFE_INTEGER + 1 === Number.MAX_SAFE_INTEGER + 2; // trueNumber.MAX_SAFE_INTEGER === Number.MAX_SAFE_INTEGER + 1; // falseNumber.MAX_SAFE_INTEGER - 1 === Number.MAX_SAFE_INTEGER - 2; // false

最小安全整数

安全整数范围的下限,即 2 的 53 次方减 1 的负数。

Number.MIN_SAFE_INTEGER + 1 === Number.MIN_SAFE_INTEGER + 2; // falseNumber.MIN_SAFE_INTEGER === Number.MIN_SAFE_INTEGER - 1; // falseNumber.MIN_SAFE_INTEGER - 1 === Number.MIN_SAFE_INTEGER - 2; // true

属性特性

writable:falseenumerable:falseconfigurable:false

方法

Number 对象新方法

Number.isFinite()

用于检查一个数值是否为有限的( finite ),即不是 Infinity

console.log( Number.isFinite(1)); // trueconsole.log( Number.isFinite(0.1)); // true // NaN 不是有限的console.log( Number.isFinite(NaN)); // false console.log( Number.isFinite(Infinity)); // falseconsole.log( Number.isFinite(-Infinity)); // false // Number.isFinate 没有隐式的 Number() 类型转换,所有非数值都返回 falseconsole.log( Number.isFinite('foo')); // falseconsole.log( Number.isFinite('15')); // falseconsole.log( Number.isFinite(true)); // falseNumber.isNaN()用于检查一个值是否为 NaNconsole.log(Number.isNaN(NaN)); // trueconsole.log(Number.isNaN('true'/0)); // true // 在全局的 isNaN() 中,以下皆返回 true,因为在判断前会将非数值向数值转换// 而 Number.isNaN() 不存在隐式的 Number() 类型转换,非 NaN 全部返回 falseNumber.isNaN("NaN"); // falseNumber.isNaN(undefined); // falseNumber.isNaN({}); // falseNumber.isNaN("true"); // false