浅谈JavaScript中的parseInt()的妙用

 更新时间:2021年07月09日 11:02:54   作者:小法丶  
本文主要介绍了JavaScript中的parseInt()的妙用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

起因

写这篇博客的起因是今天在刷leetcode的每日一题,是一道字符串转换整数 (atoi)的题,感兴趣的话可以点击题目名称去看一下具体描述。在我多次debug终于成功提交之后,去评论区看了一下大佬们的解题思路,看完之后不禁感叹javascript中原来parseInt( )已经这么优秀了啊。这告诉我了一个道理,我们自认为再熟悉不过的api,可能我们并没有真正意义上的掌握。”

我的解答

/**
 * @param {string} str
 * @return {number}
 */
var myAtoi = function(str) {
    str = str.trim();
    //截取字符串第一个字符
    var firstChar = str.charAt(),res = '',regSymbol = /^[\-\+]{1}/,regNumber = /^[0-9]{1}/;

    if(!regSymbol.test(firstChar) && !regNumber.test(firstChar)){
        return 0;
    }

    //第一个字符为+或者-
    if(regSymbol.test(firstChar)){
        var sliceStr = str.slice(1,str.length);
        for(var i=0;i<sliceStr.length;i++){
            if(regNumber.test(sliceStr.charAt(i))){
                res += sliceStr.charAt(i);
            }else{
                break;
            }
        }
        
        (res.length) ? res = parseInt(firstChar + res) : res = 0;

        if(firstChar == '-' && res < Math.pow(-2,31)){
            res = Math.pow(-2,31);
        }

        if(firstChar == '+' && res > Math.pow(2,31) - 1){
            res = Math.pow(2,31) - 1;
        }

        return res;
    }

    //第一个字符为数字
    if(regNumber.test(firstChar)){
        var sliceStr = str;
        for(var i=0;i<sliceStr.length;i++){
            if(regNumber.test(sliceStr.charAt(i))){
                res += sliceStr.charAt(i);
            }else{
                break;
            }
        }

        if(parseInt(res) > Math.pow(2,31) - 1){
            res = Math.pow(2,31) - 1;
        }

        return res;
    }
};

 大佬的解答

/**
 * @param {string} str
 * @return {number}
 */
var myAtoi = function(str) {
    const number = parseInt(str, 10);

    if(isNaN(number)) {
        return 0;
    } else if (number < Math.pow(-2, 31) || number > Math.pow(2, 31) - 1) {
        return number < Math.pow(-2, 31) ? Math.pow(-2, 31) : Math.pow(2, 31) - 1;
    } else {
        return number;
    }
};

通过对比,我们了解到javascript中的parseInt()已经做了截取空字符串、首字母判断、number类型结果返回等一系列操作。刚好与今天的每日一题的需求完美契合,使用parseInt()来解决这个题目简直不要太爽。

到此这篇关于浅谈JavaScript中的parseInt()的妙用的文章就介绍到这了,更多相关JavaScript parseInt()内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 一个js封装的不错的选项卡效果代码

    一个js封装的不错的选项卡效果代码

    在论坛里经常看到人问选项卡或者类似选项卡的切换效果 这里封装了个js,希望对大家有用 所有代码都在下面了 如果有错误或者建议,可以回贴告诉我,谢谢
    2008-02-02
  • javascript 读取XML数据,在页面中展现、编辑、保存的实现

    javascript 读取XML数据,在页面中展现、编辑、保存的实现

    最近需要做这样一个需求,数据保存在XML里,在页面上通过表格显示其内容,可以修改内容,再保存到XML。下面把做这个东西的过程记录下来,做个笔记,也给需要的人一些帮助。
    2009-10-10
  • 页面实时更新时间的JS实例代码

    页面实时更新时间的JS实例代码

    这篇文章主要介绍了页面实时更新时间的JS实例代码,有需要的朋友可以参考一下
    2013-12-12
  • JavaScript实现计数器基础方法

    JavaScript实现计数器基础方法

    这篇文章主要为大家详细介绍了JavaScript实现计数器的基础方法
    ,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • 浅谈目前可以使用ES10的5个新特性

    浅谈目前可以使用ES10的5个新特性

    这篇文章主要介绍了浅谈目前可以使用ES10的5个新特性,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-06-06
  • JS获取checkbox的个数简单实例

    JS获取checkbox的个数简单实例

    下面小编就为大家带来一篇JS获取checkbox的个数简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • javascript制作的网页侧边弹出框思路及实现代码

    javascript制作的网页侧边弹出框思路及实现代码

    这篇文章主要介绍了javascript制作的网页侧边弹出框思路及实现代码,需要的朋友可以参考下
    2014-05-05
  • 原生JS实现垂直手风琴效果

    原生JS实现垂直手风琴效果

    本篇文章主要介绍了原生JS实现垂直手风琴效果的示例代码,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • 微信小程序之五种页面跳转方法小结

    微信小程序之五种页面跳转方法小结

    本文主要介绍了微信小程序之五种页面跳转方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • 原生JS实现简单放大镜效果

    原生JS实现简单放大镜效果

    这篇文章主要为大家详细介绍了原生JS实现简单放大镜效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02

最新评论