本系列属于阮一峰老师所著的学习笔记
Number.isFinite()
Number.isFinite
用来检查一个数值是否是有限(finite)的
Number.isFinite(15) // trueNumber.isFinite(NaN) // falseNumber.isFinite('15') // falseNumber.isFinite(true) // falseNumber.isFinite(Infinity) // false
Number.isNaN()
Number.isNaN
用来检查一个值是否为NaN
Number.isNaN(NaN) // trueNumber.isNaN(true) // falseNumber.isNaN('true'/'true') // true
Number.parseInt()
将全局方法parseInt()
移植到Number
对象上面,行为保持不变
Number.parseFloat()
将全局方法parseFloat()
移植到Number
对象上面,行为保持不变
Number.isInteger()
Number.isInteger
用来判断一个值是否为整数,需要注意的是,在 JavaScript 内部,整数和浮点数是同样的储存方法,所以3和3.0被视为同一个值。
Number.isInteger(23) // trueNumber.isInteger(23.0) // trueNumber.isInteger(23.1) // false
Math对象的拓展
Math.trunc()
Math.trunc
方法用于去除一个数的小数部分,返回整数部分
Math.trunc(4.1) // 4// 对于非数值,Math.trunc内部使用Number方法先将其转为数值Math.trunc('123.456') // 123Math.trunc(true) // 1// 对于空值和无法截取整数的值,返回NaNMath.trunc(NaN) // NaNMath.trunc('foo') // NaN
Math.sign()
Math.sign
方法用来判断一个数是正数、负数还是零,对于非数值,会将其先转化为数值
// 参数为正: 返回+1;参数为负:返回-1;参数为0:返回0;参数为-0:返回-0;其他值:返回NaNMath.sign(-5) // -1Math.sign(1) // 1Math.sign(0) // 0Math.sign(-0) // -0Math.sign(NaN) // NaN
Math.cbrt()
Math.cbrt
用来计算一个数的立方根,非数值会先转化为数值
Math.cbrt(8) // 2Math.cbrt('8') // 2
Math.clz32()
Math.clz32
返回一个数的32位无符号整数形式有多少个前导0
Math.clz32(1) // 31
Math.imul()
Math.imul
方法返回两个数以32位带符号整数形式相乘的结果,返回的也是一个32位的带符号整数。
Math.imul(2,4) // 8
Math.fround()
Math.fround
返回一个数的单精度浮点数形式
Math.fround(1) // 1Math.fround(1.337) // 1.3370000123977661
Math.hypot()
Math.hypot
方法返回所有参数的平方和的平方根,如果参数不是数值,则会转为数值,只要有一个数值无法转为数值,则返回NaN
Math.hypot(3,4) // 5Math.hypot() // 0Math.hypot(3,4,'5') // 7.0710678118654755Math.hypot(-3) // 3
指数运算符
2 ** 2 // 42 ** 3 // 8