您好,登录后才能下订单哦!
这篇文章主要介绍了怎么实现一个parseInt,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
我们写代码的时候经常需要将字符串类型数字转变为数字类型,除了js内置的parseInt函数和Number函数外,我们也可以自己动手简单实现这么一个函数。
如何实现一个parseint
•如果string不为字符串类型,则先将string转化为字符串类型
•string会忽略前后的空白
•依次解析字符,如果字符不是指定基数中的字符(例如:2进制中的3、10进制中的'f')则停止解析(首字符为'+'或'-'时除外),返回已经解析好的整数
•如果无法解析为整数,则返回NaN
•radix默认值不为10,在radix为undefined、0或者没有指定时,做以下处理◦如果string以'0X'或'0x'开头时,基数为16
◦如果string以'0'开头时,基数为8或者10(每个浏览器的具体实现不同,es5规定此时为10)
◦如果string以其他任何字符开头时,基数为10
•radix的范围为2-36
不考虑进制radix
parseint代码实现
const_parseInt=(str,radix)=>{ if(typeofstr!=='string')str=String(str) str=str.trim() constregex=/^(?<fuhao>[\+|\-]*)(?<num>\d+)/ if(!regex.test(str))returnNaN constgroups=str.match(regex).groups radix=10 constarr=groups.num.split('') constlen=arr.length letresult=0 for(leti=0;i<len;i++){ constnum=arr[i]*Math.pow(10,len-i-1) if(isNaN(num))break elseresult+=num } returnresult*(groups.fuhao==='-'?-1:1) }
感谢你能够认真阅读完这篇文章,希望小编分享的“怎么实现一个parseInt”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。