我一直在关注JavaScript的Treehouse课程。我目前正在使用parseInt方法。在他们的一个示例中,显示了以下代码:
var j = parseInt("012");
保存并在Chrome的控制台中运行导致其示例中的10个(这是可以理解的,因为012是八进制的10),但在我自己的浏览器中,它导致12.它是正确的还是我做错了什么?< / p>
答案 0 :(得分:4)
这并不奇怪 - 行为实际上是implementation dependent。
它可以解析为八进制012或十进制12.
使用parseInt()
时最好指定基数参数,例如parseInt('012', 10)
。
答案 1 :(得分:0)
差异来自变量的类型。
号码IEnumerable<T>
被视为八进制,因此012
为parseInt(012)
。
字符串10
在解析之前没有任何内容。默认情况下,parseInt会将字符串视为十进制值,因此"012"
将被解析为"012"
。
12
使用小数基数,但如果您愿意,可以强制它到八进制基数:
parseInt