2011-12-19 40 views
0

可能重复:
Workarounds for JavaScript parseInt octal bug怪异的JavaScript输出

我学习的JavaScript中parseInt函数()函数只是想出来,无处

parseInt('08') returns 0 
此外,
parseInt('07') returns 7 //which is correct 

却又

parseInt('09') returns 0 // really, are you kidding me.? 

要么我疯了还是我失去了一些东西?

+0

你最后一个例子('9')是一个错字 - 你从'09'得到了令人惊讶的结果,而不是'9'。 – Pointy 2011-12-19 19:14:21

+0

相关:http://stackoverflow.com/questions/1545164/how-to-parseint-a-string-with-leading-0 – 2011-12-19 19:15:17

+0

相关:http://stackoverflow.com/questions/7318385/problems-with-javascript -parseint – 2011-12-19 19:15:29

回答

2

开始应用都需要指定radix

parseInt('08', 10); // base 10 radix 

运行你的JavaScript通JSLint将调用这一点为好。

从文档中,parseInt在字符串以0开头的情况下将字符串解析为八进制,如果没有指定基数。

3

它是因为它在字符串以0开头时执行八进制。

您应该传递10的基数作为第二个参数。

0

不,你是。只有parseInt为八进制数字服从规则,当字符串以0