gpt4 book ai didi

javascript - parseInt ("010", 10);与 parseInt(010, 10);

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:50:27 28 4
gpt4 key购买 nike

我对 parseInt 的特定结果感到困惑。我以为我了解它的大部分怪癖,但这一个还不清楚。

parseInt("010", 10); // 10

parseInt(010, 10); // 8, but expecting 10

在第二个示例中,我指定了正确的基数。出现意外结果的原因是什么?

解决方案

问题出在八进制文字上。当一个数字前面加上 0 时,它被视为八进制文字。

如果你执行

console(010); // 8

在非脚本模式下,你会得到 8。parseInt 之所以有我认为奇怪的行为是因为我实际上是在执行

parseInt(8, 10); // 8

并期待 10。

ParseInt 从未见过 010,只有 8。感谢大家的帮助。

最佳答案

以零开头的数字文字在 octal 中, 而不是 decimal ,所以 010 等于 8,除非在 strict mode 下运行.

请务必注意,parseInt 的行为会根据您的浏览器使用的 ECMAScript (JavaScript) 版本或您是否运行严格模式而有所不同。参见 Octal Interpretations with No Radix了解更多详情。

关于javascript - parseInt ("010", 10);与 parseInt(010, 10);,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20026978/

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