二进制和八进制的数值新的写法,分别用前缀0b(0B)和0o(0O) 表示,从ES5开始,在严格模式中,八进制不再允许使用前缀0表示,ES6更明确表示,要使用前缀0o表示。如果要将0b和0o前缀的字符串转化成十进制,要使用Number方法
Number('0b111') //7
Number('0o10') //8
Number.isFinite() 检查数值是否有限
Number.isNaN() 检查是否NaN
Number.parseInt() //转换成整数
Number.parseFloat() //转换成浮点数
Number.isInteger()//判断一个值是否为整数
Number.isInteger(25) //true
Number.isInteger(25.0)//true
在Javascript 内部,整数和浮点数是同样的储存方法,所以25和25.0被视为同一个值
Number.EPSILON 极小的常量
我们知道浮点计算是不精确的,引入这样一个小量的目的,在于浮点计算,如果误差小于这个常量,我们认为就是正确的结果。
Number.EPSILON
2.220446049250313e-16
Javascript能够准确表示的整数的范围是-2^53到2^53之间,超过这个范围,无法准确地表示这个值。
ES6引入了Number.MAX_SAFE_INTEGER和Number.MIN_SAFE_INTEGER这两个常量,来表示这个范围的上下限。
Math的扩展对象
Math.trunc() 用于去掉一个数的小数部分,返回整数部分
Math.sign() 判断一个数究竟是正数,负数还是0
Math.cbrt() 用于计算一个数的立方根
Math.clz32() 返回一个数的32位无符号整数形式有多少个前导0。
Math.imul() 返回两个数以32位带符号整数形式相乘的结果
Math.fround() 返回一个数的单精度浮点数形式。
Math.hypot() 返回所有参数的平方和的平方根
Math.exmpm1(x) 返回ex - 1
Math.log1p(x) 返回1+x的自然对数
Math.log10() 返回以10为底的自然对数
Math.log2() 返回以2为底的自然对数,如果x小于0,就返回NaN
三角函数方法
ES6新增了6个三角函数方法。
Math.sinh(x)
返回x
的双曲正弦(hyperbolic sine)Math.cosh(x)
返回x
的双曲余弦(hyperbolic cosine)Math.tanh(x)
返回x
的双曲正切(hyperbolic tangent)Math.asinh(x)
返回x
的反双曲正弦(inverse hyperbolic sine)Math.acosh(x)
返回x
的反双曲余弦(inverse hyperbolic cosine)Math.atanh(x)
返回x
的反双曲正切(inverse hyperbolic tangent)
Math.signbit()
Math.sign()
用来判断一个值的正负,但是如果参数是-0
,它会返回-0
。
指数运算
新增了一个指数运算符(**)
2 ** 2 //4
2 ** 3 //8
let a = 2;
a*=2 等价于 a = a*a