JS parseInt 中08.09 被按照0处理

本文探讨了JS中parseInt函数对于前导0的处理方式,特别是当遇到08和09这类无效八进制数时的问题,并提供了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JS parseInt 中08.09 被按照0处理

<script type="text/javascript">
   var aa=["01","02","03","04","05","06","07","08","09","10","11","12"];
   for(var i=0;i<aa.length;i++)
alert(parseInt(aa[i]));
   </script>

当前面有0的时候,parseInt默认把它当作八进制处理了
01--07自然没有问题,但是09,08都是不合格的八进制形式,所以被按照0处理了。为了解决这个问题,可以利用parseInt函数的另一个参数,显示的告诉parseInt按照十进制处理。

parseInt("08",10) 或者 parseInt("09",10)


   <script type="text/javascript">
   var aa=["01","02","03","04","05","06","07","08","09","10","11","12"];
   for(var i=0;i<aa.length;i++)
alert(parseInt(aa[i],10));
   </script>

这样就好了
这个所谓的bug不应该称其为一个bug,只不过我们对其不甚了解,忽略了一个重要的参数,才出现了这个让我们头疼的情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值