数值的扩展
1. 二进制(0b或0B)和八进制(0o或0O) 表示法
ES5严格模式中不允许使用前缀0表示八进制,ES6进一步明确要使用前缀0o表示。
可以使用Number()方法将前缀0B和0x和0o的字符串转为十进制。
2.Nubber.isFinite()和Number.isNaN()
分别用来检查数值是否有限和是否为NaN
注意:这两个方法与传统全局的isFinite()和isNaN()的区别在于,传统的先调用Number()方法将非数值转为数值,再进行判断,而新方法只对数值有效,对非数值一律返回false。Number.isNaN()只对NaN才返回true,其他都返回false。
3. Number.parseInt()和Number.parseFloat()
将全局方法移植到Number对象上面,减少全局方法,使得语言逐步模块化
4. Number.isInteger()
判断一个数是否为整数。
注意JavaScript中整数和浮点数采用一样的存储方法,3和3.0视为同一个值。不存在类型转换,对所有的非数值一律返回false。
5. Number.EPSILON
极小的常量,目的在于为浮点数运算设置一个误差范围,误差小于这一个常量则认为得到正确结果。
6. Number.isSafeInteger()安全整数
JavaScript能够正确表示的整数范围在-253~253(不包括两端,超过这个范围则无法正确显示)
Number.MAX_SAFE_INTEGER === Math.pow(2,53)-1
Number.MIN_SAFE_INTEGER === -Number.MAX_SAFE_INTEGER
7.Math.trunc()
用于去除小数部分返回整数部分
8.Math.sign()
用来判断一个数是正数、负数、0
正数返回+1
负数返回-1
0返回0
-0返回-0
9. Math.cbrt()
开立方根
10. Math.clz32()
JavaScript的整数使用32位二进制形式,该方法返回一个数的32位无符号整数形式有多少个前导0。
对于小数,它只考虑整数部分.
对于空值或其他类型的值会先转为数值再计算
11.Math.imul()
返回两个数以32位带符号整数形式相乘的结果,返回的也是一个32的带符号整数
12. Math.fround()
返回一个数的单精度浮点数形式
对于整数返回自身。对于那些无法使用64位二进制表示的小数,该方法会返回最接近这个小数的单精度浮点数
13. Math.hypot()
返回所有参数的平方和的平方根。
会将所有参数先转换为数值,无法转为数值会返回NaN。
14. Math.expm1()
e^x-1等同于Math.exp(x)-1
15. Math.log1p()
返回ln(x+1)即Math.log(x+1)
16. Math.log10()
返回以10为底x的对数,如果星x小于0,则返回NaN
17. Math.log2()
18. 新增了双曲函数的方法
19. Math.signbit()
判断一个值得正负,负数返回true,正数和NaN和其他情况返回false
20. 指数运算符**
21 Integer数据类型
必须使用后缀n来表示
除法运算会舍去小数部分,返回一个整数
JavaScript提供原生Integer对象用来生成integer类型的数值,转换规则基本与Number()一致
不能与Number类型进行混合运算(因为如果返回integer会丢失小数部分,返回Number可能会超出53位精确数字,精度下降

浙公网安备 33010602011771号