我的 JavaScript 程序遇到了一个非常奇怪的问题。我发现 JavaScript 由于某种原因发生了变化040000
into 16384
! [Example] 有谁知道为什么 JavaScript 这样做?
这是因为在 js 中,数字文字前面带有0
被考虑octal(基数8)
例如
010 == 8
在你的例子中040000
是真的4*8*8*8*8 = 16384
因为在八进制中每个0
右边的值乘以 8。
编辑:奖金:
如果前导 0 在字符串表示形式中(例如,如果它是由用户引入的),并且您希望避免转换为八进制,请指定基数(也称为radix)有值10
in the parseInt
方法调用,像这样
var number = parseInt("040000", 10); //number will be 40000 ;)
在最近的浏览器中,默认基数为 10,但在旧浏览器中不行,所以如果你也想要最大的兼容性,始终指定基数参数(通常是 10 个)。
Cheers
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)