ES6 针对数值的扩展
二进制和八进制表示法
- 从 ES5 开始,在严格模式之中,八进制就不再允许使用前缀0表示,ES6 进一步明确,要使用前缀0o表示。
- 可以直接使用 Number() 方法将二进制和八进制转换为十进制。
Number.isFinite(), Number.isNaN()
- ES6 新增,注意,如果参数类型不是数值,Number.isFinite一律返回false。
- 他们与传统的方法区别在于不进行类型转换,只对 Number 数据类型有效。
- Number.isNaN() 除了 NaN 之外,均会返回 false。
Number.parseInt(),Number.parseFloat()
- ES6 只是将这两个方法绑定在 Number 上,为了逐步减少全局变量,使得其离模块化更近一步。
Number.isInteger()
- 用来判断一个数是否为整数。但是遗憾的是精度不高,所以不建议使用这个方法判断一个数是否为整数。(=.=)
Number.EPSILON
- ES6 新增的极小的常量一个,当误差值小于该数时,可视为没有误差。
- 该数为 JavaScript 可以表示的最小的数。
安全整数和 Number.isSafeInteger()
- JavaScript 能够准确表示的整数范围在
-2^53到2^53
之间(不含两个端点),超过这个范围,无法精确表示这个值。 - ES6 引入了 Number.MAX_SAFE_INTEGER 和 Number.MIN_SAFE_INTEGER 这两个常量,用来表示这个范围的上下限。
Math对象的扩展
ES6 新增了 17 个 Math 对象的特有方法,本次只总结了笔者认为常用的几个。
- Math.trunc()
用于数字取整,去除其小数部分,返回整数部分。
会将非数字类型的值进行类型转换,然后取整。 - Math.sign()
用于判断一个数是正数、负数、或是0。
同样会进行类型转换,返回 +1、-1、+0、-0、NaN。 - Math.cbrt()
用于计算一个数的立方根。 - Math.hypot()
Math.hypot方法返回所有参数的平方和的平方根。
其中只要有一个参数不是数字,就会返回 NaN。