ES6学习篇四数值的扩展

1、Number.isFinite(),Number.isNaN()

isFinite()用于检查一个数值是否为有限的,即不是Infinity;
isNaN()用于检查一个值是否为NaN。
这两个新方法只对数值有效,不会进行转换。

2、Number.parseInt(),Number.parseFloat()

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

// ES5的写法
parseInt('12.34') // 12
parseFloat('123.45#') // 123.45

// ES6的写法
Number.parseInt('12.34') // 12
Number.parseFloat('123.45#') // 123.45

这样做的目的,是逐步减少全局性方法,使得语言逐步模块化。

Number.parseInt === parseInt // true
Number.parseFloat === parseFloat // true

3、Number.isInteger()

用来判断一个数值是否为整数。

Number.isInteger(25) // true
Number.isInteger(25.1) // false

JavaScript 内部,整数和浮点数采用的是同样的储存方法,所以 25 和 25.0 被视为同一个值。

Number.isInteger(25) // true
Number.isInteger(25.0) // true

如果参数不是数值,Number.isInteger返回false。

由于 JavaScript 采用 IEEE 754 标准,数值存储为64位双精度格式,数值精度最多可以达到 53 个二进制位(1 个隐藏位与 52 个有效位)。如果数值的精度超过这个限度,第54位及后面的位就会被丢弃,这种情况下,Number.isInteger可能会误判。

Number.isInteger(3.0000000000000002) // true

4、Math对象的扩展

Math.trunc()

用于去除一个数的小数部分,返回整数部分。
对于非数值,Math.trunc内部使用Number方法将其先转为数值。
对于空值和无法截取整数的值,返回NaN。

Math.sign()

用来判断一个数到底是正数、负数、还是零。对于非数值,会先将其转换为数值。
它会返回五种值。

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

Math.cbrt()

用于计算一个数的立方根。

Math.clz32()

参数转为 32 位无符号整数的形式,然后这个 32 位值里面有多少个前导 0。

Math.hypot()

返回所有参数的平方和的平方根

对数方法:

Math.expm1()

返回 ex - 1,即Math.exp(x) - 1。

Math.log1p()

方法返回1 + x的自然对数,即Math.log(1 + x)。如果x小于-1,返回NaN。

Math.log10()

返回以 10 为底的x的对数。如果x小于 0,则返回 NaN。

Math.log2()

返回以 2 为底的x的对数。如果x小于 0,则返回 NaN。

双曲函数方法

-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)

指数运算符(**)

右结合

猜你喜欢

转载自blog.csdn.net/weixin_42153877/article/details/89140377
今日推荐