1、Number —— isFinite、isNAN
Number.isFinite(参数) 返回值是 Boolean 类型。其作用是来判断参数是否是有限数值。如果参数是非数值类型,则返回值统一是 false。
Number.isNAN(参数) 返回值是 Boolean 类型。用来判断参数是都是NAN。若不是NAN,统一返回false。
与全局的 isFinite 和 isNAN 比较,全局的 isFinite 和 isNAN 会将参数的值转化为 Number 类型,然后再进行判断。Number 中的 isFinite 和 isNAN 则是直接比较参数,不对参数进行操作。若不是 Number 类型的话,统一会返回 false。
num = 12 numStr = "12" isFinite(numStr); // true isFinite(num); // true Number.isFinite(num); // true Number.isFinite(numStr); // false
2、Number —— parseInt、parseFloat
两个函数与全局的功能一样。Number.parseInt() 是将参数转化为整型;Number.parseFloat() 则是将参数转换成浮点型。
3、Number —— isInteger
Number 对象中的一个方法,作用是判断参数是否是整数。
如果参数是 非数值类型,则 isInteger 会返回 false。
整数和浮点数采用的是同样的储存方法,所以 25 和 25.0 被视为同一个值。 若数值是64位双精度格式,1 个隐藏位与 52 个有效位,超过53位,其他位则被忽略,例如:3.0000000000000002,这种情况因为舍弃位不在 isFinite的判断范围,因此可能造成误判。
Number.isFinite(123) // true Number.isFinite(123.0) // true Number.isFinite(123.4) // true Number.isFinite("123") // false Number.isFinite(null) // false Number.isFinite(-0) // true Number.isFinite(-12) // true 3.0000000000000002 // 3 Number.isFinite(3.0000000000000002) // true
4、Math —— sign
用来判断参数的正负值。返回值有五种 1、-1、0、-0。 对于无法转为数值的值,会返回NaN。
Math.sign() // NaN Math.sign(123) // 1 Math.sign(-123) // -1 Math.sign(0) // 0 Math.sign(-0) // -0 Math.sign("123") // 1 Math.sign("qwe") // NaN Math.sign(null) // 0 Math.sign(true) // 1 Math.sign(false) // 0
5、Math —— trunc
用来去掉参数中的小数部分, 返回参数的整数部分。函数会将参数转化成 Number 类型,若无法转换,则返回 NaN。
Math.trunc("123.432") // 123 Math.trunc("-123.432") // -123 Math.trunc(123.432) // 123 Math.trunc(-123.432) // -123 Math.trunc(true) //1 Math.trunc(false) // 0 Math.trunc(null) // 0
6、Math —— cbrt 求参数的立方根。函数可将参数转换成 Number 类型,然后进行计算。
7、Math —— ** 指数就算
2 ** 4 // 16 1 ** 4 // 1 5 ** 0 // 1 5 ** 2 **2 // 625