try 在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.

解决办法是什么?

Note: For sake of completeness, I'm about to post a solution, but it's a solution that I hate, so please post other/better answers.


Update:

JavaScript标准的第五版(ECMA-262)引入了一个突破性的改变,消除了这种行为.Mozilla有很好的write-up.

推荐答案

这是一个常见的Javascript解决方案:

只有specify the base,或"基数",比如:

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

你也可以使用Number:

Number('08'); // 8

Javascript相关问答推荐

脚本.js:3:20未捕获的类型错误:无法读取空的属性(读取addEventHandler)

React Native平面列表自动滚动

vscode扩展-webView Panel按钮不起任何作用

字节数组通过echo框架传输到JS blob

Angular中计算信号和getter的区别

判断表格单元格中是否存在文本框

如何修复我的js构建表每当我添加一个额外的列作为它的第一列?

google docs boldText直到按行执行应用脚本错误

无法访问Vue 3深度监视器中对象数组的特定对象值'

不能将空字符串传递给cy.containes()

为什么可选参数的顺序会导致问题?

与svg相反;S getPointAtLength(D)-我想要getLengthAtPoint(x,y)

传递方法VS泛型对象VS事件特定对象

有没有一种直接的方法可以深度嵌套在一个JavaScript对象中?

Docent.cloneNode(TRUE)不克隆用户输入

在验证和提交表单后使用useNavigate()进行react 重定向,使用带有加载器和操作的路由

OnClick更改Json数组JSX中的图像源

如何使本地html页面在重新加载时保持当前可隐藏部分的打开状态?

如何在脚本编译后直接将RxJ模块导入浏览器(无需Angel、webpack、LiteServer)

如何在Reaction中设置缺省值, Select 下拉列表,动态追加剩余值?