JavaScript 中带有前导零的数字会根据其格式以不同的方式解释。
历史演变
早期,前导零在JavaScript中表示八进制(基数 8),类似于十六进制(基数 16)的前导 0x。
10, 012, 0xA // 均表示十进制数 10
然而,在 ECMAScript 3 中,这种八进制表示被降级为可选扩展,并且十进制整数字面量不能再带有前导零(除非实现支持扩展)。
ES5 及之后的严格模式
在 ES5 中的严格模式下,带有前导零的十进制字面量不再被允许:
0 // 无效 NonZeroDigit DecimalDigits(opt) // 有效
ES6 引入的新表示形式
ES6 引入了二进制和八进制字面量,前导符号分别为 0b 和 0o:
传统八进制字面量
尽管不再推荐,带有前导零的八进制表示(即传统八进制字面量)仍然可以在非严格模式下使用:
010 // 可能会被解释为 8 或 10,具体取决于实现
最佳实践
为了确保数字始终被解释为十进制,建议移除前导零或使用 parseInt 解析数字:
parseInt('010', 8) // 返回 8 parseInt('010', 10) // 返回 10
以上是JavaScript 数字中的前导零是如何解释的?的详细内容。更多信息请关注PHP中文网其他相关文章!