一、普通扩展
- Number 方法,将字符串、数值转为十进制 : Number('0b111')
- Number.isFinite() 用来检查一个数值是否为有限的:Number.isFinite(15)
- Number.isNan() 用来检查一个值是否为NaN
- Number.parseInt()
- Number.parseFloadt()
- Number.isInteger() 用来判断一个数值是否为整数
- Number.EPSILON , ES6 新增的一个极小的常量,它表示 1与大于 1 的最小浮点数之间的差。Number.EPSILON 的实质是一个可以接受的最小误差范围
- Number.isSafeInteger() 。JavaScript 能够准确表示的整数范围在 -2^53 到 2^53之间(不含两个端点)。分别使用 Number.MAX_SAFE_INTEGER 和 Number.MIN_SAFE_INTEGER 表示。Number.isSafeInteger()则是用来判断一个整数是否落在这个范围之内。
二、Math对象的扩展
ES6 在 Math 对象上新增了 17 个与数学相关的方法。所有这些方法都是静态方法,只能在 Math 对象上调用。
- Math.trunc() : Math.trunc 方法用于去除一个数的小数部分,返回整数部分。对于非数值, Math.trunc 内部先使用 Number 方法将其先转为数值,然后再去除小数部分。对于空值和无法获取整数的值,返回 NaN.
Math.trunc(4.1) // 4
Math.trunc(4.9) // 4
Math.trunc(-4.1) // -4
// 对于非数值,Math.trunc 内部使用 Number 方法将其先转为数值
Math.trunc('123.456') // 123
Math.trunc(true) // 1
Math.trunc(false) // 0
// 对于空值和无法截取整数的值,返回 NaN
Math.trunc(NaN) // NaN
Math.trunc('fo') // NaN
Math.trunc(); // NaN
- Math.sign() : 该方法用来判断一个数到底是正数、负数、还是零。对于非数值,会先将其转换为数值
/**
* 它会返回五种值:
* - 参数为正数,返回 +1;
* - 参数为负数,返回 -1;
* - 参数为 0,返回 0;
* - 参数为 -0,返回 -0;
* - 其他值,返回 NaN。
*/
Math.sign(-5) // -1
Math.sign(5) // +1
Math.sign(0) // +0
Math.sign(-0) // -0
Math.sign(Nan) // NaN
// 如果参数是非数值,会自动转为数值。对于那些无法转为数值的值,会返回 NaN
Math.sign('') // 0
Math.sign(true) // +1
Math.sign(undefined) // NaN
- Math.cbrt() : 该方法用于计算一个数的立方根
Math.cbrt(-1) // -1
Math.cbrt(0) // 0
Math.cbrt(1) // 1
Math.cbrt(8) // 2
// 对于非数值,Math.cbrt 方法内部也是先使用 Number 方法将其转为数值
Math.cbrt('8') // 2
Math.cbrt('hello') // NaN
- Math.clz32() : JavaScript 的整数使用 32 位二进制形式表示,Math.clz32 方法返回一个数的 32 位无符号整数形式有多少个前导0 。对于小数,该方法只考虑整数部分
- Math.imul() : 该方法返回两个数以 32 位带符号整数形式相乘的结果,返回的也是一个 32 位的带符号整数
- Math.fround() : 该方法返回一个数的32位单精度浮点数形式
- Math.hypot() : 该方法返回所有参数的平方和的平方根
Math.hypot(3,4) // 5
Math.hypot(1,2,3) // 3.741657386773941
Math.hypot(0) // 0
Math.hypot(-3) // 3
Math.hypot(NaN) // NaN
// 如果参数不是数值,Math.hypot 方法会将其转为数值。只要有一个参数无法转为数值,就返回 NaN
三、其它
1、ES6 新增的对数相关方法
1.1 Math.expml() : Math.expml(x) 返回 e^x - 1 ,即 Math.exp(x) - 1
1.2 Math.log1p() : Math.log1p(x) 方法返回 1+x 的自然对数,即 Math.log(1+x)。如果 x 小于 -1,返回 NaN
1.3 Math.log10() : Math.log10(x) 方法返回以 10 为底的 x 的对数。如果 x 小于 0,则返回 NaN
1.4 Math.log2() : Math.log2(x) 方法返回以 2 为底的 x 的对数。如果 x 小于 0,则返回 NaN
2、双曲函数方法
Math.sinh(x)、Math.cosh(x)、Math.tanh(x)、Math.asinh(x)、Math.acosh(x)、Math.atanh(x)
3、指数运算符
ES2016 新增了一个指数运算符 (**)
2 ** 2 // 4
2 ** 3 // 8