gpt4 book ai didi

javascript - 奇怪的八进制行为

转载 作者:行者123 更新时间:2023-11-29 10:33:36 25 4
gpt4 key购买 nike

据我了解,八进制文字(形式为 023)在 ECMAScript 5 中无效,但得到广泛支持。在 ECMAScript 6 中,它们以 0o23 或 0O23 格式新支持。令我困惑的是数字的行为不是有效的八进制数字,但前面有零 (019)。这些似乎表现得像正常的十进制数字。

所以如果没有严格模式,我可以得到类似 022 === 018(真)的东西,因为 022 被解释为八进制,而 018 可能被视为十进制,因为它不能是八进制。

在严格模式下,当使用该格式的有效八进制数(例如 022)时出现错误,但当使用不能是有效八进制数的零前缀数字时(例如 018)则不会出现错误。

这对我来说似乎很奇怪,就像 JS(严格模式)告诉我我可以在我的数字前面放一个 0,只要它是一个无效的八进制数。在 ES6(或更高版本)中,以零为前缀的数字(可能是八进制或其他)是否无效或被视为小数?

最佳答案

这是一个 documented feature :

Decimal literals can start with a zero (0) followed by another decimal digit, but If all digits after the leading 0 are smaller than 8, the number is interpreted as an octal number. This won't throw in JavaScript.

如果你想强制将数字视为八进制,你可以使用 ES6 中引入的新文字形式 0o(或 0O)。

关于javascript - 奇怪的八进制行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40716699/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com