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
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
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
2
3
4
5
Math.imul(): 方法返回两个数以 32 位带符号整数形式相乘的结果,返回的也是一个 32 位的带符号整数。
Math.imul(2, 4) // 8
Math.imul(-1, 8) // -8
Math.imul(-2, -2) // 4
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
2
3
4
5
6
7
← 对象的扩展 数据类型Symbo及其常见用法 →