Number(),parseInt(),parseFloat()之间的区别

一、Number()

Number函数主要是用于将任何其他数据类型的值转化为数值类型。
转换规则如下:
1、如果是布尔类型的值,true转化为1false转化为0。
console.log(Number(true))   //1
console.log(Number(false))  //0
2、如果是简单的数值型,则直接返回。
3、如果是null,则直接转化为0.
4、如果是undefined,则直接转化为NaN.
5、如果是字符串,则去掉开头和结尾的空格部分,如果仍然存在其他非数字字符,则直接返回NaN,否则返回数字。
console.log(Number("    10"))    //10
console.log(Number("    10s"))   //NaN
6、如果是字符串,前面存在0或者(+-)号。将其转换为数字。
console.log(Number("+000001")) //1
console.log(Number("-1121"))   //-1121
7、如果在其中存在十六进制的字符串,则将其转化为十进制数字。
console.log(Number("0xf"))  //15
8、如果是空字符串,则直接转换为0。
console.log(Number(""))    //0
9、如果除了以上内容的字符串,还存在其他字符串,则直接返回NaN10、如果是对象类型的数据,则首先调用valueOf(),则再按照上述进行转换。如果转换的结果为NaN,则调用toString()方法再进行转换,目的就是将对象转化为基本数据类型。

二、parseInt( )

parseInt()可以将字符串转化为一个整数,与Number()相比,parseInt()还可以转化为字符串开头为数字的字符串。
其转换的规则如下:
1、如果字符串开头不是数字或者正负号,则直接返回NaN(所以当为空字符串时,则直接返回NaN)
console.log(parseInt(""))     //NaN
console.log(parseInt("-10"))  //-10
console.log(parseInt("+10"))  //10
2、如果开头是数字或者正负号,则继续解析接下来的字符,直到找到不是该字符的字符串。
console.log(parseInt("1000de"))  //1000
3、如果在开头跟着是0x后面是数字字符换,则会将其看做十六进制,转化为十进制。
console.log(parseInt("0xfss"))   //15
4、parseInt()的第二个参数,表示使用多少进制来解析。
console.log(parseInt("11", 16))   //17
console.log(parseInt("11", 2))    //3
console.log(parseInt("11", 8))    //9
5、parseInt()中传入小数时,则从小数点处断开。
console.log(parseInt("11.112"))  //11
console.log(parseInt("-11.22"))  //-11

三、parseFloat()

parseFloat()可以解析字符串为浮点数,大体和parseInt()一致。
1、浮点数第一个小数点有效,第二个小数点就没有效了。
console.log(parseFloat("100.11.11"))  //100.11
2、如果传入的参数中包含可解析的整数,不包含小数,则直接返回整数。
console.log(parseFloat("10212"))   //10212
console.log(parseFloat("0xA"))     //0
console.log(parseFloat("0908.5")); //908.5
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值