详解js数值转换 Number(),parseInt()与parseFloat()

js中共有三个函数用于将其他数据类型转换为数值类型,分别是Number(),parseInt()parseFloat().
其中 Number() 可以用于任意数据类型,后两者主要用于将字符串转换为数值类型。

Number() 的转换规则:

1.布尔值,true转换为1,false转换为0

 console.log(Number(true));// 1
 console.log(Number(false));// 0

2.数值,直接返回

  console.log(Number(123));// 123

3.null,返回 0

console.log(Number(null));// 0

4.undefined,返回NaN

console.log(Number(undefined));// NaN

5.字符串:
1)若为数值字符串(包含加减号的情况),直接返回数值,若数值前面为0,忽略后返回数值。

console.log(Number('123'));// 123
console.log(Number('+123'));// 123
console.log(Number('-123'));// -123
console.log(Number('00123'));// 123

2)若除包含数值字符串外还包含其他字符串,返回NaN

console.log(Number('123和其他字符串'));// NaN

3)若为浮点值字符串(包含加减号的情况),同样直接返回数值(同样忽略前面的0)

console.log(Number('1.1'));// 1.1
console.log(Number('01.1'));// 1.1

4)若为16进制的数值字符串,会转换为十进制后输出

console.log(Number('0xAF'));// 175

5)若为空字符串,返回0

console.log(Number(''));// 0

parseInt()转换规则:

parseInt()会从第一个非空格字符开始检测,直到遇到非数值字符或到字符串末尾,例如‘123blue’会返回123,后面剩余字符将自动忽略,类似的像 ‘22.4’ 会返回22,因为小数点不是有效的整数字符。

若第一个字符为非 数值或加减符号 的字符会立即返回NaN,这意味着空字符串也会返回NaN.

console.log(parseInt('123'));// 123
console.log(parseInt('   123'));// 123
console.log(parseInt('0123'));// 123
console.log(parseInt('+123'));// 123
console.log(parseInt('-123'));// -123
console.log(parseInt('123blue'));// 123
console.log(parseInt('22.4'));// 22
console.log(parseInt(''));// NaN
console.log(parseInt('加123'));// NaN

parseInt()还能识别不同整的数格式(十六进制,八进制,二进制),事实上parseInt()还支持接收第二个参数,用于指定进制数,若不传,将自动判断。

console.log(paserInt('0xAF'));// 175
console.log(parseInt('11',2));// 3

parseFloat()转换规则:

parseFloat与parseInt类似,不同的是,有效字符增加了小数点,但只限于第一次出现的小数点,第二次出现小数点后此时字符串剩余的字符将会全部忽略,例如 ’22.3.1123’ 返回的为22.3
值得一提的是parseFloat只支持十进制解析,所以parseFloat()不能通过传递第二个参数来指定进制数,十六进制的数值会始终返回0

 console.log(parseFloat('0xAF'));// 0
 console.log(parseFloat('22.3.1123'));// 22.3
 console.log(parseFloat('123adf'));// 123
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值