一、ES6 中表示二进制与八进制
ES5 中二进制与十进制互相转换:
1 | // 十进制 -> 二进制 |
ES6 中使用0B
表示二进制,0O
表示八进制。(B和O大小写均可)
1 | const a = 0B101 |
严格模式中不允许使用0为前缀表示数值,这样会报错:
1 | const a = 0101 // 报错,严格模式下不允许使用旧的八进制文字 |
二、ES6 中提供的新方法
1)Number.isFinite()
判断当前数值是否是有限的。
1 | console.log(Number.isFinite(5)) // true |
补充:ES 中一个数除以 0 不会报错,输出结果是无穷大。
1 | console.log(5/0) // Infinity |
2)Number.isNaN()
判断当前参数是否是 NaN。
1 | console.log(Number.isNaN(NaN)) // true |
在 ES5 中,有一个方法为isNaN()
,这个方法相当于 window.isNaN()。ES5 中将很多方法都挂载在了全局对象 window 上,导致全局对象很大。在 ES6 中逐步地将一些全局方法迁移到了相应的对象上。这样可以使全局对象变小且语言更加模块化。
3)Number.parseInt() 与 Number.parseFloat()
这两个方法也是从全局对象迁移到 Number 对象上。
1 | console.log(Number.parseInt(5.5)) // 5 |
4)Number.isInteger()
判断当前数值是否为整数。
1 | console.log(Number.isInteger(5)) // true |
5)Number.isSafeInteger()
用于判断给定参数是否是安全的整数。
1 | console.log(Number.isSafeInteger(Number.MAX_SAFE_INTEGER)) // true |
ES 中整数的最大值为2的53次方,最小值是负2的53次方。在 ES6 中提供了新的常量表示最大与最小安全整数,Number.MAX_SAFE_INTEGER
表示最大的安全整数,Number.MIN_SAFE_INTEGER
表示最小的安全整数。注意:Number.MAX_SAFE_INTEGER 等于2的53次方减1,Number.MIN_SAFE_INTEGER 等于负2的53次方加1。
三、ES6 中关于 Math 对象的新方法
1)Math.trunc()
用于将一个值转化成整数。
1 | console.log(Math.trunc(5.5)) // 5 |
对于以上参数的转化结果与使用 Number.parseInt() 方法一致,我们再看一下两者的区别:
1 | console.log(Math.trunc(true)) // 1 |
2)Math.sign()
用于判断参数是正数、负数、还是0。正数返回1,负数返回-1,0返回0。
1 | console.log(Math.sign(5)) // 1 |
3)Math.cbrt()
用于计算一个数值的立方根。
1 | console.log(Math.cbrt(8)) // 2 |