gpt4 book ai didi

javascript - 如何解决 JavaScript 的 parseInt 八进制行为?

转载 作者:IT老高 更新时间:2023-10-28 13:11:36 26 4
gpt4 key购买 nike

尝试在 JavaScript 中执行以下操作:

parseInt('01'); //equals 1
parseInt('02'); //equals 2
parseInt('03'); //equals 3
parseInt('04'); //equals 4
parseInt('05'); //equals 5
parseInt('06'); //equals 6
parseInt('07'); //equals 7
parseInt('08'); //equals 0 !!
parseInt('09'); //equals 0 !!

我刚刚了解到 JavaScript 认为前导零表示 octal integer 的艰难方式。 ,并且由于 base-8 中没有 "8""9",因此该函数返回零。不管你喜不喜欢,this is by design .

有什么解决方法?

注意:为了完整起见,我将发布一个解决方案,但这是我讨厌的解决方案,所以请发布其他/更好的答案。


更新:

JavaScript 标准的第 5 版 (ECMA-262) 引入了一项消除此行为的重大更改。 Mozilla有一个很好的write-up .

最佳答案

这是一个常见的 Javascript 问题,但有一个简单的解决方案:

只需 specify the base ,或“基数”,如下所示:

parseInt('08',10); // 8

您也可以使用 Number :

Number('08'); // 8

关于javascript - 如何解决 JavaScript 的 parseInt 八进制行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/850341/

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