当前位置:首页 > JavaScript

js 实现parseint

2026-03-14 15:48:08JavaScript

JavaScript 实现 parseInt

在 JavaScript 中,parseInt 是一个用于将字符串转换为整数的内置函数。以下是其实现原理和使用方法的详细说明。

基本语法

parseInt(string, radix);
  • string:需要解析的字符串。
  • radix(可选):表示字符串的基数(进制),范围是 2 到 36。默认为 10。

实现逻辑

  1. 忽略前导空格
    解析时会跳过字符串开头的空格字符,直到找到第一个非空格字符。

  2. 处理符号
    如果第一个非空格字符是 +-,会将其作为符号处理。

  3. 解析数字
    从第一个有效字符开始,解析连续的数字字符(根据 radix 决定有效字符范围),直到遇到非数字字符为止。

  4. 基数处理

    • 如果未指定 radix 或为 0,JavaScript 会根据字符串前缀推断基数:
      • 0x0X 开头:基数为 16(十六进制)。
      • 0 开头:基数为 8 或 10(部分环境可能不同)。
      • 其他情况:基数为 10。
    • 如果 radix 不在 2 到 36 之间,返回 NaN

自定义实现示例

以下是一个简化的 parseInt 自定义实现:

js 实现parseint

function customParseInt(str, radix = 10) {
  // 检查基数是否有效
  if (radix < 2 || radix > 36) return NaN;

  // 正则匹配有效字符
  const regex = new RegExp(`^[\\s]*([+\\-]?)([0-${Math.min(radix - 1, 9)}a-${String.fromCharCode(86 + radix)}A-${String.fromCharCode(54 + radix)}]+)`);
  const match = str.match(regex);

  if (!match) return NaN;

  const [, sign, digits] = match;
  let result = 0;

  for (let i = 0; i < digits.length; i++) {
    const char = digits[i].toLowerCase();
    let value;

    if (/[0-9]/.test(char)) {
      value = parseInt(char, 10);
    } else {
      value = char.charCodeAt(0) - 87; // a -> 10, b -> 11, etc.
    }

    if (value >= radix) break; // 无效字符终止解析
    result = result * radix + value;
  }

  return sign === '-' ? -result : result;
}

注意事项

  • 原生 parseInt 会截断小数部分,例如 parseInt("12.34") 返回 12
  • 如果字符串的第一个非空格字符不是数字或符号,返回 NaN
  • 某些历史实现中,parseInt("08") 可能返回 0(八进制解析),但现代环境通常按十进制处理。

示例用法

console.log(customParseInt("123"));      // 123
console.log(customParseInt("FF", 16));   // 255
console.log(customParseInt("1010", 2));  // 10
console.log(customParseInt("abc"));      // NaN

标签: jsparseint
分享给朋友:

相关文章

js实现vue

js实现vue

Vue.js 简介 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。其核心库专注于视图层,易于与其他库或现有项目整合。 实现 Vue.js 的基本步骤 安装 Vue.j…

js实现选项卡

js实现选项卡

实现选项卡的基本思路 选项卡通常由一组标签和对应的内容面板组成。点击标签时,显示对应的内容面板,隐藏其他面板。实现这一效果需要结合HTML结构、CSS样式和JavaScript交互逻辑。 HTML结…

js 实现vue

js 实现vue

Vue.js 的基本实现 在 JavaScript 中实现 Vue.js 的核心功能,可以通过数据绑定、响应式系统和虚拟 DOM 来实现。以下是实现 Vue.js 核心功能的简化版本。 数据响应式系…

js实现游标

js实现游标

使用JavaScript实现游标 在JavaScript中,可以通过操作DOM元素的cursor样式属性来实现自定义游标效果。以下是几种常见的实现方法: 修改默认鼠标指针样式 通过CSS的curso…

js树实现

js树实现

树的基本概念 树是一种非线性的数据结构,由节点和边组成。每个节点包含一个值和指向子节点的引用。树的顶部节点称为根节点,没有子节点的节点称为叶节点。 树的实现方式 在JavaScript中,树可以通过…

vue实现js休眠

vue实现js休眠

实现 JavaScript 休眠的方法 在 Vue 中实现 JavaScript 休眠(延迟执行)可以通过以下方式实现。由于 JavaScript 本身没有内置的 sleep 函数,通常使用 Prom…