parseInt转化的坑

parseInt() 函数解析一个字符串参数,并返回一个指定基数的整数 (数学系统的基础)。---MDN

划重点:

  • 当第一个参数不是字符串时, 会先转成字符串(toString)再进行转化. 
  • 第二个参数是一个介于2和36之间的整数(数学系统的基础). 当不指定第二个参数时, 不同的环境可能会有不同的转化结果, 请务必使用第二个参数.
  • 转出的数字是整数.

说一些parseInt的坑.

parseInt(1/0, 19) // 18 wtf???
// 1/0结果是Infinity, 转化为字符串是"Infinity", 19进制使用"0-9a-i"标识数字.
// 所以, "Infinity"被当做19进制进行转化时, I转化成了18, n不在19进制标识符里边, 所以转化停止.
// 最终的结果就是18.

//类似的还有
parseInt(false, 16) // 250
parseInt(function(){}, 16) // 15

parseInt(0.0000042, 10) // 0
// 0.0000042转成字符串是"0.0000042", 字符串再转成数字, 第一个字符是"0", 第二个字符是".", 
// 好, 整数部分转完了
// 结果是0

parseInt(0.00000042, 10) // 4 wtf???
// 0.00000042转成字符串是"4.2e-7", 字符串再转成数字, 第一个字符是"4", 第二个字符是".", 好, 整数部分转完了
// 结果是4

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值