1、 Number.isFinite()、Number.isNaN()

  这两个新方法只对数值有效,不会先调用Number()方法。

Number.isFinite(): 用来检查一个数值是否为有限的(finite)。如果参数类型不是数值,Number.isFinite一律返回false。
Number.isNaN(): 用来检查一个值是否为NaN。Number.isNaN()只有对于NaN才返回true,非NaN一律返回false。

2、 Number.isSafeInteger

  Number.isSafeInteger()则是用来判断一个整数是否落在这个范围之内。javaScript 能够准确表示的整数范围在-2^53到2^53之间(不含两个端点),超过这个范围,无法精确表示这个值。Number.MAX_SAFE_INTEGER和Number.MIN_SAFE_INTEGER这两个常量,用来表示这个范围的上下限。

3、 Math对象的扩展

  扩展方法在使用时都会参数使用Number()转为数值来来处理。

Math.trunc(): 用于去除一个数的小数部分,返回整数部分。对于非数值,Math.trunc内部使用Number方法将其先转为数值(本质上就是parseInt()方法)。

Math.trunc(4.1) // 4
Math.trunc(4.9) // 4
Math.trunc(-4.1) // -4
Math.trunc(-4.9) // -4
Math.trunc(-0.1234) // -0
Math.trunc('123.456') // 123
Math.trunc(true) //1
Math.trunc(false) // 0
Math.trunc(null) // 0
Math.trunc('123.456') // 123
Math.trunc(true) //1
Math.trunc(false) // 0
Math.trunc(null) // 0
1
2
3
4
5
6
7
8
9
10
11
12
13

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
1
2
3
4
5

Math.cbrt(): 用于计算一个数的立方根。对于非数值,Math.cbrt方法内部也是先使用Number方法将其转为数值。

Math.cbrt(-1) // -1
Math.cbrt(0)  // 0
Math.cbrt(1)  // 1
Math.cbrt(2)  // 1.2599210498948734
Math.cbrt("8")//2
1
2
3
4
5

Math.imul(): 方法返回两个数以 32 位带符号整数形式相乘的结果,返回的也是一个 32 位的带符号整数。

Math.imul(2, 4)   // 8
Math.imul(-1, 8)  // -8
Math.imul(-2, -2) // 4
1
2
3

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

Math.hypot(3, 4);        // 5
Math.hypot(3, 4, 5);     // 7.0710678118654755
Math.hypot();            // 0
Math.hypot(NaN);         // NaN
Math.hypot(3, 4, 'foo'); // NaN
Math.hypot(3, 4, '5');   // 7.0710678118654755
Math.hypot(-3);          // 3
1
2
3
4
5
6
7
Last Updated: 3/16/2020, 6:57:04 PM