js parseInt() 详解

项目开发过程中,我们经常会用到parseInt(),但是对它的第二个参数知之甚少,下面解释下第二个参数。

首先我们先来看看w3school的解释:

解释的也很清楚,但是对于对进制不了解的同学就有点难理解了,我以8进制为例,解释下:

例:
parseInt('25', 8); //21
//'25'分为2和5,然后和8比较,均比8小
//计算:2和5的索引分别为 1,0。计算方法为2乘以8的1次方加上5乘以8的0次方
//计算公式:2*8^1+5*8^0=21

parseInt('292', 8); //2
//'25'分为2和9,然后和8比较,当大于等于8时后面的数字(包含自己)截去,所以从9开始截去,只剩2
//计算:2的索引为 0。计算方法为2乘以8的0次方
//计算公式:2*8^0=2

parseInt('9', 8)
//当第一个数就比参数大时,返回NAN

当然该方法也存在一些问题,例:

1、对于那些会自动转为科学计数法的数字,parseInt会将科学计数法的表示方法视为字符串,因此导致一些奇怪的结果。

parseInt(1000000000000000000000.5) // 1
// 等同于
parseInt('1e+21') // 1

parseInt(0.0000008) // 8
// 等同于
parseInt('8e-7') // 8

2、parseInt('010')    //未定:返回 10 或 8

 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值