ES6特性:数值新增方法

ES6在Number对象上,提供了新的方法去操作数值。

(1)Number.isFinite():用来检测一个数值是否为有限的(finite),即不是Infinity。返回布尔值

如果参数类型不是数值,一律返回false。

Number.isFinite(15);    // true
Number.isFinite(NaN);    // false
Number.isFinite(Infinity);    // false
Number.isFinite('abc');    // false
Number.isFinite('15');    // false

(2)Number.isNaN():检测一个值是否为NaN,返回布尔值

Number.isNaN(NaN);    // true
Number.isNaN(10);    // false
Number.isNaN('10');    // false
Number.isNaN(true);    // false
Number.isNaN(10/NaN);    // true
Number.isNaN('true'/0);    // true
Number.isNaN('true'/'true');    // true

与传统的全局方法isFinite()和isNaN()不同的是,传统方法先调用Number()将非数值的值转换为数值,再进行判断,而ES6这两个方法只对数值有效。

(3)Number.isInteger():判断一个数值是否为整数

Number.isInteger();     // false
Number.isInteger(null);     // false
Number.isInteger('15');     // false
Number.isInteger(true);     // false
Number.isInteger(11);     // true

Math对象的扩展

(1)Math.trunc():去除一个数的小数部分,返回整数部分

对于非数值,先转为数值。对于空值和无法截取整数的值,返回NaN

Math.trunc(NaN);      // NaN
Math.trunc('foo');    // NaN
Math.trunc();         // NaN
Math.trunc(undefined); // NaN
Math.trunc('123.456') // 123
Math.trunc(true) //1

(2)Math.sign():判断一个数到底是正数、负数、还是零。对于非数值,会先将其转换为数值。

参数为整数返回+1;负数返回-1;0返回0;-0返回-0;其他值返回NaN

(3)Math.cbrt():计算一个数的立方根

对于非数值,会先将其转换为数值;无法转换返回NaN

(4)Math.hypot():返回所有参数的平方和的平方根

对于非数值,会先将其转换为数值;只要有一个参数无法转为数值,就会返回 NaN

指数运算符

ES6 新增了一个指数运算符(**

这个运算符的一个特点是右结合,而不是常见的左结合。多个指数运算符连用时,是从最右边开始计算的。

2 ** 2    // 4
2 ** 3    // 8
2 ** 3 ** 2    // 相当于2**(3**2) 512

可以和等号结合

let a=10,b=2;
a**=b    // 相当于a=a**b    100

猜你喜欢

转载自blog.csdn.net/qq_41049816/article/details/88663542