为什么parseInt(013)返回11?

时间:2012-11-28 19:12:59

标签: javascript

  

可能重复:
  Workarounds for JavaScript parseInt octal bug

这是显示行为的jsfiddle

非常简单的问题,任何想法?

代码只是:

parseInt(013)

3 个答案:

答案 0 :(得分:12)

因为如果您的号码以'0'开头,那么它被视为八进制,因此

'013' = 1 * 8 + 3 = 11

答案 1 :(得分:9)

parseInt()需要字符串。您提供了octal013

使用:

parseInt('013', 10)

注意:为了清晰起见,我还鼓励传递 radix

答案 2 :(得分:2)

数字013被解释为八进制。它与parseInt无关;事实上,var a = 013;a11