数值的扩展

原创
2017/02/18 18:31
阅读数 12

二进制和八进制的数值新的写法,分别用前缀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

 

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部