持续创作,加速成长!这是我参与「掘金日新计划 · 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