你认为parseInt("08")会回归什么?

Dav*_*eng 3 javascript parsing

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

令人惊讶的是返回0.为什么?什么是获得正确结果的(正确)解决方案?

T.J*_*der 16

使用基数:

var x = parseInt("08", 10);
Run Code Online (Sandbox Code Playgroud)

一些JavaScript实现将第三个数字系统添加到由标准定义的两个(十进制,默认;和十六进制,前缀为0x):八进制,前缀为0.这是非标准的,但在最新规范中被认为是常见的.

由于8不是有效的八进制数字,因此parseInt停在那里,返回值0.

通过明确使用基数,您告诉parseInt不要试图找出正在使用的数字系统,而是使用您指定的数字系统.键入时你的直觉parseInt应该始终是指定基数; 不这样做会让你对古怪开放.