parseInt, parseFloat, Number 函数对比

Javascript 中提供了三种函数,将变量转化成数字类型。

parseInt 和 parseFloat 用来解析以数字开头的部分数字字符串;

1) parseInt(arg1, arg2), 只能用于将字符串转换成10进制的整数,第二个参数指定转换基数,即第一个参数的原始进制;第二个参数不存在时,parseInt 只能识别,0x 开头的16进制数和0开头的8进制数, 其他都按10进制转10进制。

2) parseFloat(arg1), 只能用于将字符串转换成10进制的浮点数,只接受一个参数,不能识别数据的原始进制,所有数据基数按10转换。

Number 时JS 提供类型强制转换转函数,用于将其他类型的数据转换成数字类型,不支持部分转换。

Number(arg), 只接受一个参数arg,arg 可以是各种数据类型

arg 为 Boolean类型, true转换成1, false 转换成0;

arg 为 number 类型,转换成本身;

arg 为 string 类型,按10进制转换,可识别“0x” 开头的16进制数,其他都按10为基数转换,且不支持部分转换。无效的字符串转换为NaN,空字符串转换为0;

arg 为 undefined , 转换成 NaN;

arg 为 null,转换成 0;

arg 为 对象,包括Object, Array, Function, 则调用对象的valueOf()方法,按上面的规则转换,若转换为NaN, 再调用 toString() 方法按上面的规则转换,

Number([])为0; 

Number([1]) 为1;

Number([1,2]) 为NaN;

Number({}) 为NaN;

应用1:“==” 数据类型隐式转换

let a = []==false;  // a 为 true, 因为 false 和[] 类型强转换为数字都是0

let b = "true"==true; //b 为 false,因为 true 类型强转换为数字为1,“true” 类型强转换为数字为NaN

“==” 在类型转换时,若有一方为boolean 变量,先将boolean 变量用Numer()方法强转换成数字,再与另一方比较。转换规则表:

 

应用二:进制间转换

parseInt 再将字符串转换成10进制数据时,可以指定转换的基数,也就是指定字符串原始进制。 另外Number对象还有一个toSting(arg) 方法可以指定数据转换成字符串后的进制。这两个方法相结合,可以实现数据进制间 的互转。

parseInt('11',2); // 3, 从2进制转10进制

Number(3).toString(2); //'11', 从10进制转2进制

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值