此文参考学习于 阮一峰老师《ES6入门》,更多特性以及方法可以点击查看
1.数值 指数运算符
ES2016 新增了一个指数运算符(**
)。
2 ** 2 // 4
2 ** 3 // 8
多个指数运算符连用时,是从最右边开始计算的。简单来说就是从左至右来计算
// 相当于 2 ** (3 ** 2)
2 ** 3 ** 2
// 512
指数运算符可以与等号结合,形成一个新的赋值运算符(**=)
。
let a = 1.5;
a **= 2;
// 等同于 a = a * a;
let b = 4;
b **= 3;
// 等同于 b = b * b * b;
2.Number.isNaN ()
- Number.isNaN()用来检查一个值是否为NaN。
- Number.isNaN()只有对于NaN才返回true,非NaN一律返回false。
3.Number.parseInt(), Number.parseFloat()
- ES6 将全局方法parseInt()和parseFloat(),移植到Number对象上面,行为完全保持不变。
4.Number.isInteger()
- Number.isInteger()用来判断一个数值是否为整数。
- 如果参数不是数值,Number.isInteger返回false。
注:如果对数据精度的要求较高,不建议使用Number.isInteger()判断一个数值是否为整数。
Number.isInteger(25) // true
Number.isInteger(25.0) // true
Number.isInteger(25.1) // false
5.Math 对象的扩展
5.1. Math.trunc()
- Math.trunc方法用于去除一个数的小数部分,返回整数部分。
Math.trunc(4.1) // 4
Math.trunc(-4.9) // -4
Math.trunc(-0.1234) // -0
对于非数值,Math.trunc内部使用Number方法将其先转为数值。
对于空值和无法截取整数的值,返回NaN。
Math.trunc('123.456') // 123
Math.trunc(true) //1
Math.trunc(false) // 0
Math.trunc(null) // 0
Math.trunc(NaN); // NaN
Math.trunc('foo'); // NaN
Math.trunc(); // NaN
Math.trunc(undefined) // NaN
5.2. Math.sign ( )
Math.sign方法用来判断一个数到底是正数、负数、还是零。对于非数值,会先将其转换为数值。
返回值
参数为正数,返回+1;
参数为负数,返回-1;
参数为 0,返回0;
参数为-0,返回-0;
其他值,返回NaN。
如果参数是非数值,会自动转为数值。对于那些无法转为数值的值,会返回NaN。
Math.sign('') // 0
Math.sign(true) // +1
Math.sign(false) // 0
Math.sign(null) // 0
Math.sign('9') // +1
Math.sign('foo') // NaN
Math.sign() // NaN
Math.sign(undefined) // NaN