JS手写parseInt:不使用原生API实现字符串转数字
作者:闭包旅人时间:2026-10-22 08:43:08浏览:507
本文介绍如何在JavaScript中手动实现parseInt函数,要求不使用Number()等原生转换API。通过类型检查、字符串预处理及按位权累加的方式,支持指定进制(2-36)的字符串解析,并处理非法输入返回NaN的逻辑,帮助开发者深入理解底层转换机制。
JS手写parseInt实现思路
前言
本文主要介绍在JavaScript中手动实现parseInt函数的具体方法,分享相关实现细节供读者参考学习。
手写parseInt的核心需求相对简单:将字符串类型的数字转换为数值类型,但限制条件是不允许使用JavaScript原生的字符串转数字API,例如Number()。
核心代码实现
示例代码
function _parseInt(str, radix) {
let str_type = typeof str;
let res = 0;
if (str_type !== 'string' && str_type !== 'number') {
// 如果类型不是 string 或 number 类型返回NaN
return NaN
}
// 字符串处理
str = String(str).trim().split('.')[0]
let length = str.length;
if (!length) {
// 如果为空则返回 NaN
return NaN
}
if (!radix) {
// 如果 radix 为0 null undefined
// 则转化为 10
radix = 10;
}
if (typeof radix !== 'number' || radix < 2 || radix > 36) {
return NaN
}
for (let i = 0; i < length; i++) {
let arr = str.split('').reverse().join('');
res += Math.floor(arr[i]) * Math.pow(radix, i)
}
return res;
}
总结
以上就是本文的全部内容,希望本文关于手动实现parseInt的解析对大家的学习或工作有所启发。如有任何疑问,欢迎留言交流,感谢支持。
作者最新文章
什么时候该用JS构造器:与工厂模式、字面量的选择对比
2026-11-05 16:18:22
推荐几款轻量级JS照片墙开源库及对比
2026-11-05 15:56:19
JavaScript递归写法有哪些常见陷阱及避免方法
2026-11-05 14:53:38
JS数组浅拷贝与深拷贝怎么选?场景与方法总结
2026-11-05 14:41:02
p5.js 中 setup() 和 draw() 函数的执行机制详解
2026-11-05 12:32:38
相关标签:
