其他分享
首页 > 其他分享> > 2021.04.24(ES6 Math对象的扩展)

2021.04.24(ES6 Math对象的扩展)

作者:互联网

Math.trunc()

Math.trunc  方法用于去除一个数的小数部分,返回整数部分。

1.  Math.trunc(4.1) // 4
2.  Math.trunc(4.9) // 4
3.  Math.trunc(-4.1) // -4
4.  Math.trunc(-4.9) // -4
5.  Math.trunc(-0.1234) // -0

对于非数值, Math.trunc  内部使用 Number  方法将其先转为数值。

1.  Math.trunc('123.456') // 123
2.  Math.trunc(true) //1
3.  Math.trunc(false) // 0
4.  Math.trunc(null) // 0

对于空值和无法截取整数的值,返回 NaN  。

1.  Math.trunc(NaN); // NaN
2.  Math.trunc('foo'); // NaN
3.  Math.trunc(); // NaN
4.  Math.trunc(undefined) // NaN

Math.sign()

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

 

 

1.  Math.sign(-5) // -1
2.  Math.sign(5) // +1
3.  Math.sign(0) // +0
4.  Math.sign(-0) // -0
5.  Math.sign(NaN) // NaN

如果参数是非数值,会自动转为数值。对于那些无法转为数值的值,会返回 NaN  。

1.  Math.sign('') // 0
2.  Math.sign(true) // +1
3.  Math.sign(false) // 0
4.  Math.sign(null) // 0
5.  Math.sign('9') // +1
6.  Math.sign('foo') // NaN
7.  Math.sign() // NaN
8.  Math.sign(undefined) // NaN

Math.cbrt()

Math.cbrt()  方法用于计算一个数的立方根。

1.  Math.cbrt(-1) // -1
2.  Math.cbrt(0) // 0
3.  Math.cbrt(1) // 1
4.  Math.cbrt(2) // 1.2599210498948732

对于非数值, Math.cbrt()  方法内部也是先使用 Number()  方法将其转为数值。

1.  Math.cbrt('8') // 2
2.  Math.cbrt('hello') // NaN

Math.hypot()

Math.hypot  方法返回所有参数的平方和的平方根。

1.  Math.hypot(3, 4); // 5
2.  Math.hypot(3, 4, 5); // 7.0710678118654755
3.  Math.hypot(); // 0
4.  Math.hypot(NaN); // NaN
5.  Math.hypot(3, 4, 'foo'); // NaN
6.  Math.hypot(3, 4, '5'); // 7.0710678118654755
7.  Math.hypot(-3); // 3

上面代码中,3 的平方加上 4 的平方,等于 5 的平方。
如果参数不是数值, Math.hypot  方法会将其转为数值。只要有一个参数无法转为数值,就会返回
NaN。

指数运算符

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

 

1.  2 ** 2 // 4
2.  2 ** 3 // 8

 

这个运算符的一个特点是右结合,而不是常见的左结合。多个指数运算符连用时,是从最右边开始计算
的。

1.  // 相当于 2 ** (3 ** 2)
2.  2 ** 3 ** 2
3.  // 512

上面代码中,首先计算的是第二个指数运算符,而不是第一个。
指数运算符可以与等号结合,形成一个新的赋值运算符( **=  )。

1.  let a = 1.5;
2.  a **= 2;
3.  // 等同于 a = a * a;
4.
5.  let b = 4;
6.  b **= 3;
7.  // 等同于 b = b * b * b;

 

2021-04-24 12:05:32

 

标签:24,ES6,2021.04,cbrt,NaN,sign,hypot,Math,trunc
来源: https://www.cnblogs.com/zhenggc99/p/14696591.html