JS Number() parseInt() parseFloat() 区别和 联系

Number() parseInt() parseFloat() 都会忽略前面的空格和0,但是在忽略完前面所有的空格后,如果找不到有效的数字字符
或者 Number():正负号 小数点
parseInt():正负号
parseFloat():正负号,小数点

Number()
boolean只会被转化成0和1
数字值不会改变
undefine 转化成NaN
null转化成0
如果是字符串
1.包含整型数字,则会将其转化为整数
2.包含有效的浮点数格式,则会将其转化为浮点数
3.如果包含有效的16进制格式 比如0xf ,则会将其转化为15
4.如果字符串为空,则转化为0
5.如果包含其他的字符,则转化为NaN

parseInt()
前面基本差不多,只不过parseInt() 不认识小数点,比如”0.123”将会被转化成0
parseInt具有解析八进制的能力,比如parseInt(“070”),将被解析为56
关于这点ECMAScript3和ECMAScript5有区别
所以不容易产生混淆的用法是 除了字符串参数外,再加一个参数,表示进制数
不如parseInt(“0xf”)的另外一种写法是parseInt(“f”,16)
parseInt(“070”) = parseInt(“70”,8)

parseFloat没有进制参数,而且除了数字,小数点和符号字符外都不认识,所以只能解析10进制
parseFloat(“0xff”) 解析为0
parseFloat(“0.12333.455656”) 只认识第一个小数点,所以,将被解析为0.12333
parseFloat(“070”) 将被解析为70

总结:
Number 和 parseInt 的区别是后者具有单独的进制参数,而且可以处理8进制数据,就算不填进制参数,只要格式恰当,也可以正确解析
parseInt parseFloat的区别是前者不能处理浮点数,后者只能处理10进制
Number parseFloat的区别是parseFloat不能识别各种进制的字符串,所以只能处理10进制

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值