自己是个合格的前端吗?看看这个题会不会 -JavaScript
在JavaScript的开发中用到parseInt的情况还是很多的,网上的使用说明也很容易查到,简单的一些介绍,几分钟就学会用了。但是它却可能引起一些难以预料的Bug。如果你不信请往下看,先猜一猜这几行都输出什么?
console.log(parseInt('0e0')); console.log(parseInt('0810')); console.log(parseInt('0a')); console.log(parseInt('a0'));
猜完了,我再把这个parseInt使用说明摘要点再贴一下,然后你再猜看一看和第一次想的一样不?
基本语法:
parseInt(string [, radix])
参数: string
要转换的值。如果此参数不是字符串,则使用ToString 抽象操作将其转换为一个参数。此参数中的前面空格将被忽略。
参数: radix (可选的)
表示2到36之间的整数。注意该值并不是 默认值10!如果该值不是Number类型,它将被强制为Number类型。
返回值:
把给定参数string解析成整数。
可能返回:NaN
(1)radix是小于2比或更大 36。
(2)string 不能转为数字时。
看完使用说明我们就划重点:
1、换字符为 "0x"开头时,它转换为16进制。
2、当字符串以“0”开头时可能以8进制进行解析了。(IE8以下)
3、parseInt的第一个参数允许为数字和非数字的组合,解析过程将从左到右开始截取到字符不可转为数字为止,将忽略前置和尾随空格。
就写到这里吧,你可能也许会改变一下你的答案。
抛一个包袱,我把最终输出结果和总结放到了个人博客:https://lebang2020.cn/details/210201f0bht0e4.html
整个过程的参考地址:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt