当前位置:首页 > JavaScript

js 实现parseint

2026-04-06 09:38:35JavaScript

js 实现parseint

js 实现parseint

实现 JavaScript 的 parseInt 功能

基本功能实现

parseInt 的核心功能是将字符串转换为整数,忽略前导空格,支持正负号,并处理进制转换。

function myParseInt(str, radix = 10) {  
    // 去除前导空格  
    let i = 0;  
    while (str[i] === ' ') i++;  

    // 处理正负号  
    let sign = 1;  
    if (str[i] === '+') i++;  
    else if (str[i] === '-') {  
        sign = -1;  
        i++;  
    }  

    // 处理进制  
    if (radix === undefined || radix === 0) {  
        radix = 10;  
        if (str[i] === '0') {  
            if (str[i + 1] === 'x' || str[i + 1] === 'X') {  
                radix = 16;  
                i += 2;  
            } else {  
                radix = 8;  
                i++;  
            }  
        }  
    }  

    // 解析数字  
    let num = 0;  
    while (i < str.length) {  
        const c = str[i].toLowerCase();  
        let digit;  
        if (c >= '0' && c <= '9') digit = c.charCodeAt(0) - '0'.charCodeAt(0);  
        else if (c >= 'a' && c <= 'z') digit = c.charCodeAt(0) - 'a'.charCodeAt(0) + 10;  
        else break;  

        if (digit >= radix) break;  
        num = num * radix + digit;  
        i++;  
    }  

    return num * sign;  
}  

边界情况处理

  • 非字符串输入会先转为字符串。
  • 空字符串或非数字开头返回 NaN
  • 超出进制范围的字符会终止解析。
function myParseInt(str, radix = 10) {  
    if (typeof str !== 'string' && typeof str !== 'number') return NaN;  
    str = String(str).trim();  
    if (!str.length) return NaN;  

    // 其余逻辑同上  
    // ...  
}  

测试示例

console.log(myParseInt("123"));       // 123  
console.log(myParseInt("0xFF", 16));  // 255  
console.log(myParseInt("-42"));       // -42  
console.log(myParseInt(" 123 "));     // 123  
console.log(myParseInt("abc"));       // NaN  

该实现覆盖了 parseInt 的主要功能,但未完全模拟 JavaScript 引擎的特殊行为(如 parseInt(0.0000005) 返回 5)。

标签: jsparseint
分享给朋友:

相关文章

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 使用JavaScript实现拖拽功能需要监听鼠标事件,包括mousedown、mousemove和mouseup。以下是实现的基本逻辑: const draggableEleme…

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 /…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…

js钟表实现

js钟表实现

实现JavaScript钟表的基本方法 创建一个简单的JavaScript钟表可以通过以下步骤完成,涵盖数字和模拟两种形式。 数字钟表实现 HTML结构只需一个显示时间的容器: <div i…

vue实现js休眠

vue实现js休眠

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