Es6学习笔记5

Posted by JayZhao on 2018-04-23

Es6学习笔记5

数值的扩展

1.二进制和八进制表示法

ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示。

2.Number.isFinite(), Number.isNaN()

Number.isFinite()用来检查一个数值是否为有限的(finite,若参数不是数值则直接返回false

Number.isNaN()只对 NaN 返回 true, 其他的一律返回 false。

拓展

  • 传统的 isFinite() 和 isNaN() 方法是先调用 number 方法将,非数值参数转化成数值,而这两个方法只对数值有效。

3.Number.parseInt(), Number.parseFloat()

ES6 将全局方法parseInt()parseFloat(),移植到Number对象上面,行为完全保持不变。

4.Number.isInteger()

Number.isInteger()用来判断一个数值是否为整数。

拓展

  • JavaScript 内部整数和浮点类型采用的是同样的存储方法,1 和 1.0 会被视为同一个值。
  • 对于超过精度限制的数值可能会存在误判的情况,Number.isInteger(3.000000000000000 2) 为 true。还有小于 Number.MIN_VALUE 的时候也会出现误判。
  • 因此对于精度要求高的情况不适宜使用此方法来判断。

5. Number.EPSILON

表示浮点计算的最小误差,低于此值可认为计算是精确的,是不存在误差的。(引入这个常量的目的是因为浮点计算是不精确的)。

6.安全整数和 Number.isSafeInteger()

JavaScript 能够准确表示的整数范围在-2^532^53之间(不含两个端点),超过这个范围,无法精确表示这个值。
ES6 引入了Number.MAX_SAFE_INTEGERNumber.MIN_SAFE_INTEGER这两个常量,用来表示这个范围的上下限。

7.Math 对象的扩展

ES6 在 Math 对象上新增了 17 个与数学相关的方法。所有这些方法都是静态方法,只能在 Math 对象上调用。

1.Math.trunc 去除小数部分,返回整数,对于非数值,先使用 number 方法返回数值。另外的其他情况返回 NaN。
2.Math.cbrt 用来计算立方根
3.Math.clz32 返回使用 32 位二进制表示的整数有多少个前导 0.
4.Math.imul 方法返回以 32 位带符号形式整数的乘积,(引入的原因是因为在溢出的时候依然有效。)
5.Math.fround Math.fround方法返回一个数的32位单精度浮点数形式。对于32位单精度格式来说,数值精度是24个二进制位,超过这个区间就会损失精度。Math.fround方法的主要作用,是将64位双精度浮点数转为32位单精度浮点数。如果小数的精度超过24个二进制位,返回值就会不同于原值,否则返回值不变(即与64位双精度值一致)。
6.Math.hypot 方法返回所有参数的平方和的平方根。
7.Math.sign Math.sign方法用来判断一个数到底是正数、负数、还是零。对于非数值,会先将其转换为数值。它会返回五种值。

  • 参数为正数,返回+1
  • 参数为负数,返回-1
  • 参数为 0,返回0
  • 参数为-0,返回-0;
  • 其他值,返回NaN

对数方法

新增了:
(1) Math.expm1() Math.expm1(x)返回 ex - 1,即Math.exp(x) - 1
(2)Math.log1p()Math.log1p(x)方法返回1 + x的自然对数,即Math.log(1 + x)。如果x小于-1,返回NaN
(3)Math.log10()Math.log10(x)返回以 10 为底的x的对数。如果x小于 0,则返回 NaN。
(4)Math.log2()Math.log2(x)返回以 2 为底的x的对数。如果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)

指数运算符

ES2016 新增了一个指数运算符(**)。