温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-08-12 16:05:14 来源:ITPUB博客 阅读:147 作者:好程序员 栏目:web开发

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

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

parseInt()

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

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

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

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

var   a   =   parseInt ( 10 );   //将字符串转成整数类型 console.log(a);   // 10 var   b   =   parrseInt( 10 true );   //将有效数字部分转为整数,提取开头数字部分 console.log(b);   // 10 var   c   =   parseInt ( 10 true20 );   //只将开头有效部分转为整数 console.log(c);   //10 var   d   =   parseInt ( 045 zoo );   //开头部分转为整数,数字前面的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   *   1 e22,   10 );   // 非常大的数值变成 4 parseInt ( 0.00000000000434 ,   10 );   // 非常小的数值变成 4

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

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

总结:

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

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI