返回
ES6 新奇搞怪的新数字格式:八进制与二进制数字字面量揭秘
前端
2023-10-11 05:15:40
在ES6之前,JavaScript 只支持八进制(前缀0)、十进制(无前缀)和十六进制(0x)三种数字字面量。而ES6则为我们带来了二进制字面量,并对八进制数字字面量的表示方式进行了改变。
八进制数字字面量
在ES5中,八进制数字字面量使用一个零前缀(0),后接八进制数字序列表示。例如:
010 // 八进制 10,转换为十进制是 8
025 // 八进制 25,转换为十进制是 21
077 // 八进制 77,转换为十进制是 63
在ES6中,八进制数字字面量的表示方式发生了改变。现在,可以使用两个零前缀(00),后接八进制数字序列表示。例如:
0o10 // 八进制 10,转换为十进制是 8
0o25 // 八进制 25,转换为十进制是 21
0o77 // 八进制 77,转换为十进制是 63
这种新的表示方式更加清晰和一致,也避免了与十进制数字字面量的混淆。
二进制数字字面量
ES6还为我们带来了二进制数字字面量,可以使用两个零前缀(0b),后接二进制数字序列表示。例如:
0b10 // 二进制 10,转换为十进制是 2
0b11 // 二进制 11,转换为十进制是 3
0b100 // 二进制 100,转换为十进制是 4
二进制数字字面量非常适合在位操作和底层系统编程中使用。它们可以让你更轻松地处理二进制数据,而无需进行繁琐的转换。
进制转换
在JavaScript中,可以使用parseInt()
函数将字符串形式的数字转换为整数。该函数的第二个参数指定了要转换的数字的进制。例如:
parseInt("010", 8); // 将八进制字符串 "010" 转换为十进制整数 8
parseInt("0b10", 2); // 将二进制字符串 "0b10" 转换为十进制整数 2
你也可以使用toString()
方法将整数转换为特定进制的字符串。该方法的第二个参数指定了要转换的进制。例如:
(10).toString(8); // 将十进制整数 10 转换为八进制字符串 "12"
(10).toString(2); // 将十进制整数 10 转换为二进制字符串 "1010"
结论
ES6中的八进制和二进制数字字面量为我们提供了更多表示数字的方式,也让JavaScript的数字操作更加灵活和强大。这些新特性可以让你更轻松地处理底层系统编程和二进制数据,并为你的代码增添一抹独特性和创造力。