为什么parseInt(013)返回11?

Jak*_*ake 1 javascript

可能重复:
JavaScript parseInt八进制错误的变通方法

这是一个jsfiddle显示行为:

很简单的问题,任何想法?

代码只是:

parseInt(013)
Run Code Online (Sandbox Code Playgroud)

Ora*_*bîg 12

因为如果你的数字以'0'开头,那么它被视为八进制

'013' = 1 * 8 + 3 = 11
Run Code Online (Sandbox Code Playgroud)


Jas*_*ary 9

parseInt()需要一个字符串.你提供了一个八进制,013.

使用:

parseInt('013', 10)
Run Code Online (Sandbox Code Playgroud)

注意:为了清楚起见,我还鼓励传递基数.