自己是个合格的前端吗?看看这个题会不会 -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

 

posted @ 2021-02-01 17:04  xinsiyus  阅读(57)  评论(0编辑  收藏  举报