ES6 Number类型的扩展
简介
ES6对JS原生的各个数据类型都进行了扩展,对于Number类型:新增了二、八进制的表示方法;Number.EPSILON和最大最小安全整数常量;为Number对象新增和移植了一些方法;在数值的计算方面为Math对象新增了近20种静态计算方法。
新的进制转换
由于大部分语言只支持八进制,十进制和十六进制的字面量数值,所以js在进行转换的时候,只能在字符串和数字类型之间转换,即只能将其他进制的字符串转换为十进制的数字,或者将十进制的数字转换为其他进制的字符串。
JS原生进制转换方法:
-
Number.toString(radix):将十进制数字转换为目标进制字符串,radix取值2-36
-
parseInt(string , radix):将目标进制字符串转换为十进制数字,radix取值2-36
const a = 5;
console.log(a.toString(2))// 101,十进制=>二进制
console.log(parseInt('101', 2))// 5,二进制=>十进制
ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示。
console.log(0B0101)// 二进制 5
console.log(0O777)// 八进制 511
console.log(0xFF)// 十六进制 255
新的Number常量
- Number.MAX_SAFE_INTEGER: JS 中能精确表示的最大安全整数,值为 2 的 53 次方减1
- Number.MIN_SAFE_INTEGER:JS 中能精确表示的最小的安全整数,值为-2 的 53 次方减1
- Number.EPSILONÿ