Pro*_*ogo 3 javascript numbers
我的JavaScript程序遇到了一个非常奇怪的问题.我发现用JavaScript的出于某种原因改变040000成16384![ 示例 ]有谁知道为什么JavaScript会这样做?
这是因为在js中,前面加上的数字文字0被认为是八进制(基数为8)
例如
010 == 8
Run Code Online (Sandbox Code Playgroud)
在你的例子040000中,实际上4*8*8*8*8 = 16384是因为在八进制0中,右边的每个值乘以8.
编辑:奖金:
如果前导0在字符串表示中(例如,如果它是由用户引入的),并且您希望避免转换为八进制,请在方法调用中指定带有值的基数(也称为基数),如下所示10parseInt
var number = parseInt("040000", 10); //number will be 40000 ;)
Run Code Online (Sandbox Code Playgroud)
在最近的浏览器中,基数默认为10,但在旧浏览器中不是,因此如果您还想要最大兼容性,请始终指定基数参数(通常为10).
干杯
| 归档时间: |
|
| 查看次数: |
125 次 |
| 最近记录: |