学习ES6:数值扩展
Number对象的扩展
Number.isFinite()
Number.isFinite(number)
Function: 检查参数是否为非无穷数值。
return: boolean
1 | Number.isFinite(10); //true |
Number.isNaN()
Number.isNaN(number)
Function: 检查参数是否为NaN。
return: boolean
1 | Number.isNaN(10); //false |
Number.isFinite() 与 Number.isNaN() 对应了传统的 isFinite() 与 isNaN(), 其区别在于传统方法先将参数转为数值后再判断,而新方法只对数值有效,非数值参数一律返回false。
Number.isInteger()
Number.isInteger(number)
Function: 检查参数是否为Integer。
return: boolean
该方法只对数值类型有效,非数值一律返回false。
在JS内部,整数和浮点数是同样的储存方法,所以5和5.0视作同一值!
1 | Number.isInteger(5); //true |
Number.isSafeInteger()
Number.isSafeInteger(number)
Function: 检测参数(整数)是否在安全范围内
return: boolean
安全数: number ∈ (-2^53, 2^53)
安全数常量:
- 最大安全数: Number.MAX_SAFE_INTEGER
- 最小安全数: Number.MIN_SAFE_INTEGER
如果需要验证运算结果是否在安全整数范围内,不仅要验证运算结果,还要同时验证参与运算的每一个值。
1 | function trusty (left, right, result) { |
Number.EPSILON
ES6新增的Number对象中的常量: 极小常量
用以在进行相应计算时设置一个误差范围。
Math 对象的扩展
Math.trunc()
Math.trunc(number)
Function: 去除一个数的小数部分,反悔参数值的整数部分。
return: Number
内部会对非数值参数先进行一次数值转换
1 | Math.trunc(3.2); //3 |
Math.sign()
Math.sign(number)
Function: 判断参数是正数还是负数或者0
return:
参数类型 | 返回值 |
---|---|
正数 | 1 |
负数 | -1 |
0 | 0 |
-0 | -0 |
其它 | NaN |
1 | Math.sign(3); //1 |
Math.cbrt()
Math.cbrt(number)
Function: 计算参数立方根
return: Number
内部会对非数值参数先进行一次数值转换
1 | Math.cbrt(1); //1 |
Math.hypot()
Math.hypot(number[, number1, number3, …])
Function: 计算所有参数的平方和的算术平方根
return: Number
内部会对所有非数值参数先进行一次数值转换,只要有一个参数转换失败,即返回NaN
1 | Math.hypot(1); //1 |
Math.expm1()
Math.expm1(x)
Function: 计算e^x-1
, 即Math.exp(x) - 1
return: Number
内部会对所有非数值参数先进行一次数值转换
1 | Math.expm1(1); //1.718281828459045 |
Math.log1p()
Math.log1p(x)
Function: 计算ln(1+x)
, 即Math.log(x+1)
,x<-1, 返回NaN
return: Number
内部会对所有非数值参数先进行一次数值转换
Math.log10()
Math.log10(x)
Function: 计算以10为底的x的对数,x<0,返回NaN
return: Number
内部会对所有非数值参数先进行一次数值转换
Math.log2()
Math.log2(x)
Function: 计算以2为底的x的对数,x<0,返回NaN
return: Number
内部会对所有非数值参数先进行一次数值转换
新增三角函数方法
- Math.sinh(x): 返回x的双曲正弦
- Math.cosh(x): 返回x的双曲余弦
- Math.tanh(x): 返回x的双曲正切
- Math.asinh(x): 返回x的反双曲正弦
- Math.acosh(x): 返回x的反双曲余弦
- Math.atanh(x): 返回x的反双曲正切
内部会对所有非数值参数先进行一次数值转换