ES6——Math对象新增方法

312 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第13天,点击查看活动详情

Math对象在JavaScript中主要用来执行与数学相关的计算,ES6中在Math对象上又新增了一些数学方法,使Math功能更加全面多样化,下面我们来看下这些新增的方法。

Math.trunc()

Math.trunc()用来去除一个小数中的小数部分,其用法如下:

Math.trunc(2.1) // 2
Math.trunc(-2.1) // -2
Math.trunc(0.6) // 0
Math.trunc('12.34') // 12

如上,当我们对小数2.1、-2.1和0.6使用Math.trunc方法进行处理时,结果会只保留小数的整数部分,舍弃小数点后面的位置。但当我们对一个非数值'12.34'字符串使用Math.trunc方法时,其内部会先通过Number方法将字符串转化为数字12.34,然后再取其整数部分12。

Math.sign()

Math.sign方法是用来判断一个数是正数、负数还是0,同样,如果是非数值参数,则会先使用Number方法将其转化为数值,其用法如下:

Math.sign(-2) // -1
Math.sign(2) // +1
Math.sign(0) // +0
Math.sign(-0) // -0
Math.trunc('12.34') // +1
Math.sign('foo')  // NaN

如上,Math.sign的返回值有五种,主要是-1、+1、+0、-0和NaN。当参数是负数时,Math.sign方法会返回-1,如果是正数则返回+1,如果是0的话返回+0,如果是字符串'12.34',则会先转化成12.34,然后返回+1。

Math.cbrt()

Math.cbrt方法用来计算一个数的立方根,同样,如果是非数值参数,也会在内部先将其转化为数值,其用法如下:

Math.cbrt(1) // 1
Math.cbrt(8) // 2
Math.cbrt('27') // 3

Math.hypot()

Math.hypot参数用来返回所有参数平方和的平方根,其用法如下:

Math.hypot(3, 4); // 5

Math对象方法

ES6在Math中新增了与对数相关的几个方法,其含义如下:

  • Math.expm1():Math.expm1(x)方法其用来返回ex - 1
  • Math.log10():Math.log10(x)方法用来返回以10为底的x的对数
  • Math.log2():Math.log2(x)方法用来返回以2为底的x的对数
  • Math.log1p():Math.log1p(x)方法用来返回1+x的自然对数

其用法如下:

Math.log10(1000) // 3
Math.log2(8) // 3
Math.expm1(1) // 1.718281828459045
Math.log1p(1) // 0.6931471805599453