JS手写parseInt:不使用原生API实现字符串转数字

作者:闭包旅人

时间:2026-10-22

浏览:508

本文介绍如何在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的解析对大家的学习或工作有所启发。如有任何疑问,欢迎留言交流,感谢支持。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章