文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

好程序员web前端培训分享关于parseInt函数的一切

2023-06-03 12:14

关注

  好程序员web前端培训分享关于parseInt函数的一切,关于JS的手动类型转换,parseInt是我们最早接触的函数之一。

  接下来我们详细的总结一下它的用法,你可以点击收藏,以备不时之需。

parseInt()

作用是将参数(通常为字符串)强制转换为整数。

它有两个参数,第二个可以省略,我们先展示常见的用法

1. 转换规则:依次将字符串中从左到右的数字部分转为整数,一旦转换失败,返回NaN。

(1) 参数是字符串类型:

var a = parseInt(‘10’); //将字符串转成整数类型console.log(a); // 10var b = parrseInt(‘10true’); //将有效数字部分转为整数,提取开头数字部分console.log(b); // 10var c = parseInt(‘10true20’); //只将开头有效部分转为整数console.log(c); //10var d = parseInt(‘045zoo’); //开头部分转为整数,数字前面的0省略console.log(d); //45var f = parseInt(‘34.5’); //整数部分,小数点非数字部分,舍去console.log(f); //34var g = parseInt(‘a3’); //若不是以数字开头,转为NaN(Not a Number 不是数字)的特殊数值console.log(g); //NaN

(2) 参数是数字类型:

var a = parseInt(3.4); //依然转为数字,但是取整console.log(a); //3

(3) 其它数据类型:只要开头不包含有效数字,结果都转为NaN

 var a = parseInt(true);

 console.log(a); //NaN 

 var b = parseInt(null);

 console.log(b); //NaN 

 var c = parseInt(undefined);

 console.log(c); //NaN

 var d = parseInt([]);

 console.log(d); //NaN

 var e = parseInt({});

 console.log(e); //NaN

接下来,我们看第二个参数的用法

第二个参数:表示进制,范围2~36(用来说明第一个参数的进制规则)

 var a = parseInt(‘99’,10); // 如果字符串为十进制内容,该参数可省略 console.log(a); // 99 

 var a = parseInt(‘1001’,2); // ‘1001’ 符合二进制规则, 转为十进制整数 console.log(a); // 9

 var a = parseInt(‘1001’,10); // ‘1001’同样符合十进制, 转为十进制整数 console.log(a); // 1001

 var b = parseInt(‘234’,2); //‘234’不符合二进制的规则 console.log(b); // NaN

 var b = parseInt(‘abcde’,2); //‘abcde’不符合二进制的规则 console.log(b); // NaN

 var c = parseInt(‘1022’,2); //‘10’部分属于二进制,但‘22’不是,将开头有效的部分提取并转成十进制 console.log(c); //2

一些特殊说明

如果以0x或0X开头,即使不说明进制规则,也能识别

var e = parrseInt(‘0xa’); //0x是十六进制的表示方法,a是十六进制中的10,转换成整数后自动切换为十进制console.log(e); //10

尽量不使用出现e的数字,由于只能识别开头部分,会造成结果混乱此时应使用parseFloat方法替代

parseInt("6.022e23", 10);        // 返回 6parseInt(6.022e2, 10);          // 返回 602

非常大或非常小的数字

parseInt(4.7 * 1e22, 10); // 非常大的数值变成 4parseInt(0.00000000000434, 10); // 非常小的数值变成 4

在最新的ES5规范中,以0开头的数字,已经不能再被识别为八进制了。

parseInt("011");  //会当成10进制转换为   11parseInt("011", 8)   //指定了8进制,结果为  9

总结:

以上测试均来自最新版的chrome浏览器,并不能确保所有浏览器行为一致。为了保证开发中不出现意外,建议使用parseInt方法时,一律带上第二个参数

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯