JavaScript函数parseInt()不能正确解析前导0的数字

ein*_*ein 5 javascript parseint

我在正整数之前有一些零.我想删除零,所以只剩下正整数.像'001'只会是'1'.我认为最简单的方法是使用parseInt('001').但我发现它不适用于数字8和9.示例parseInt('008')将导致'0'而不是'8'.

这是整个HTML代码:

<html> <body>
<script>
var integer = parseInt('002');
document.write(integer);

</script>
</body> </html>
Run Code Online (Sandbox Code Playgroud)

但我可以以某种方式报告这个问题吗?有谁知道另一个简单的解决方法这个问题?

Ser*_*pov 15

你必须指定数字的基数(基数)

parseInt('01', 10);
Run Code Online (Sandbox Code Playgroud)

  • 是的,像JSLint(http://www.jslint.com/)这样的JS代码质量工具可以让你了解它:) (5认同)

Ada*_*erg 10

这是记录在案的行为:http://www.w3schools.com/jsref/jsref_parseInt.asp

带有前导'0'的字符串被解析为它们是八进制的.

  • MDN文档的质量通常远高于他们的w3schools同行.[这里](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/parseInt)相关的MDN页面. (2认同)