parseInt输出int而不是八进制数

时间:2015-05-12 00:14:54

标签: javascript parseint

我一直在关注JavaScript的Treehouse课程。我目前正在使用parseInt方法。在他们的一个示例中,显示了以下代码:

var j = parseInt("012");

保存并在Chrome的控制台中运行导致其示例中的10个(这是可以理解的,因为012是八进制的10),但在我自己的浏览器中,它导致12.它是正确的还是我做错了什么?< / p>

2 个答案:

答案 0 :(得分:4)

这并不奇怪 - 行为实际上是implementation dependent

它可以解析为八进制012或十进制12.

使用parseInt()时最好指定基数参数,例如parseInt('012', 10)

答案 1 :(得分:0)

差异来自变量的类型。

号码IEnumerable<T>被视为八进制,因此012parseInt(012)

字符串10在解析之前没有任何内容。默认情况下,parseInt会将字符串视为十进制值,因此"012"将被解析为"012"

默认情况下,

12使用小数基数,但如果您愿意,可以强制它到八进制基数:

parseInt