全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

关于parseInt函数的一切

发布时间:2022-10-10 15:27:35
发布人:qyf

关于parseInt函数的一切

  关于JS的手动类型转换,parseInt是我们最早接触的函数之一。

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

  parseInt()

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

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

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

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

  var a = parseInt(‘10’); //将字符串转成整数类型

  console.log(a); // 10

  var b = parrseInt(‘10true’); //将有效数字部分转为整数,提取开头数字部分

  console.log(b); // 10

  var c = parseInt(‘10true20’); //只将开头有效部分转为整数

  console.log(c); //10

  var d = parseInt(‘045zoo’); //开头部分转为整数,数字前面的0省略

  console.log(d); //45

  var f = parseInt(‘34.5’); //整数部分,小数点非数字部分,舍去

  console.log(f); //34

  var 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); // 返回 6

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

  非常大或非常小的数字

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

  parseInt(0.00000000000434, 10); // 非常小的数值变成 4

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

  parseInt("011"); //会当成10进制转换为 11

  parseInt("011", 8) //指定了8进制,结果为 9

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

相关文章

Flutter和 qt的区别都有什么?

Flutter和 qt的区别都有什么?

2023-10-14
rnn和lstm中batchsize和timestep的区别是什么?

rnn和lstm中batchsize和timestep的区别是什么?

2023-10-14
什么是OA服务器?

什么是OA服务器?

2023-10-14
常用的渗透测试工具都有哪些?

常用的渗透测试工具都有哪些?

2023-10-14

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取