奇怪的javascript输出

时间:2011-12-19 19:12:26

标签: javascript

  

可能重复:
  Workarounds for JavaScript parseInt octal bug

我正在学习javascript的parseInt()函数,只是尝试了,并且无处不在

parseInt('08')  returns 0

此外,

parseInt('07')  returns 7 //which is correct

但是再次

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

要么我疯了,要么我错过了什么?

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

您需要指定radix

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

通过JSLint运行您的javascript也会调用它。

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

答案 2 :(得分:0)

不,你是。只有parseInt遵守八进制数的规则,并在字符串以0开头时应用它们。