1、二进制和八进制的表示方法
es6提供了二进制和八进制的表示方法,分别用前缀ob(二进制)和0o(八进制)表示
将二进制或者八进制转换为十进制可以调用number方法
2、number.isNaN() 和number.isFinite()
前者用来判断一个数字是否为nan,后者用来判断一个数字是否有限
3、parseInt()和parsefloat()
es6将全局的parseInt()和parsefloat()移植到了number对象上,行为完全保持不变。
// ES5的写法
parseInt('12.34') // 12
parseFloat('123.45#') // 123.45
// ES6的写法
Number.parseInt('12.34') // 12
Number.parseFloat('123.45#') // 123.45
这样做的目的,是逐步减少全局性方法,使得语言逐步模块化。
4、number.isinteger()
number.isinteger()方法用来判断一个数字是否为整数。
js的内部整数和浮点数采用的同样的储存方法,所以1.0和1视为一个值。
如果传入的参数不是一个数字会返回false
js内部采取IEEE 754标准,数值存储为64位双精度格式,数值精度为53个二进制位 (即2的53次方)小数点后15位有效,如果数值超过这个长度,54位以后的会被丢弃,这时isinteger()可能会误判
如果一个数值的绝对值小于5E-324(js可以识别的最小值)会被自动的转为0,isinteger()可能会误判。
5、math.trunc()
去除一个数的小数部分,直接去掉 不考虑向上取整和向下取整
Math.trunc(4.1) // 4
Math.trunc(-4.1) // -4
Math.trunc(-0.1234) // -0
对于非数值的情况,会内部调用number方法将其转为数值
Math.trunc('123.456') // 123
Math.trunc(true) //1
Math.trunc(false) // 0
Math.trunc(null) // 0
6、math.sign()
用来判读一个数是正数还是负数、还是0,对于非数值的参数会调用number方法转为数值,他会返回五个值分别为:
参数为正数,返回+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
Math.sign('') // 0
Math.sign(true) // +1
Math.sign(false) // 0
Math.sign(null) // 0
Math.sign('9') // +1
Math.sign('foo') // NaN
Math.sign() // NaN
Math.sign(undefined) // NaN