如何解决JavaScript的ParseInt八进制行为?尝试在JavaScript中执行以下命令:parseInt('01'); //equals 1parseInt('02'); //equals 2parseInt('03'); //equals 3parseInt('04'); //equals 4parseInt('05'); //equals 5parseInt('06'); //equals 6parseInt('07'); //equals 7parseInt('08'); //equals 0 !!parseInt('09'); //equals 0 !!我刚学到了JavaScript认为前导零表示八进制整数因为没有"8"或"9"在基-8中,函数返回零。不管你喜不喜欢,这是故意的.解决办法是什么?注意:为了完整起见,我即将发布一个解决方案,但这是一个我讨厌的解决方案,所以请发布其他/更好的答案。最新情况:JavaScript标准的第5版(ECMA-262)引入了消除此行为的破坏更改。莫兹拉笔迹.
4 回答
慕田峪4524236
TA贡献1875条经验 获得超5个赞
慕桂英3389331
TA贡献2036条经验 获得超8个赞
~~x
~~"08" === 8~~"foobar" === 0~~(1.99) === 1~~(-1.99) === -1
~
NaN
牛魔王的故事
TA贡献1830条经验 获得超3个赞
parseInt('08', 10); //equals 8 parseInt('09', 10); //equals 9
添加回答
举报
0/150
提交
取消