JS-数值转换

JS数值转换

JS数值转换的方式有4种:Number(),parseInt(),parseFloat(),数据类型*1或者/1。

他们的区别在于:

1.Number():可以将非数值转为数值

如果是Boolean值,true和flase将分别被转换为1和0

如果是数字,那么就是简单的传入和返回

如果是null值,那么返回0

如果是undefined,那么返回NaN

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

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

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

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

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

如果是字符串,那么又有如下的规则:

如果字符串只包含数字,则将其转为十进制,即”1”会变成1,”123”变成123, 而”011”会变为11 (注意这里不会被当成八进制来处理)

如果字符串中包含有效的十六进制格式,如”1.1”, 则将其转换为对应的浮点数值

如果字符串中包含有效的十六进制格式,例如"0xf", 则会将其转换为相同大小的十进制整数。

如果字符串是空的,则将其转换为0

如果字符串包含上述格式之外的字符,则将其转换为NaN

console.log(Number("1"));//1
console.log(Number("012"));//12
console.log(Number("0o10"));//8
console.log(Number("0b111"));//7
console.log(Number("3.14"));//3.14
console.log(Number("0xf"));//15
console.log(Number(""));//0
console.log(Number("123Hello"));//NaN

2.parselnt():也是将一个非数值转为数值

相比number0函数, parselnt0会更多的看是否有数字,有就会将其转换为数值。

最简单的例子为number(函数转换”123Hello"时会转换为NaN,而parselnt0则会将其转换为123。碰到空字符串时,number(函数会将其转换为0,而parselnt0则会将其转换为NaN。最后是在碰到小数时,会有一个取整的过程。例如”3.14”会 被转换为”3”

console.log(parseInt("1"));//1
console.log(parseInt("012"));//12
console.log(Number("0o10"));//8
console.log(Number("0b111"));//7
console.log(parseInt("3.14"));//3
console.log(parseInt("0xf"));//15
console.log(parseInt(""));//NaN
console.log(parseInt("123Hello"));//123

3.parseFloat():将非数值转为浮点数

parseFloat0只解析十进制值,所以没有第二个参数,该函数会将带有小数点的字符串转换为小数。如果没有小数点的数会被转换为整数。同样的parseFloat()也是尽 可能转换更多的数值,

console.log(parseFloat("21"));//21
console.log(parseFloat("123Hello"));//123
console.log(parseFloat("0xA"));//0
console.log(parseFloat("3.14"));//3.14 
console.log(parseFloat("22.34.5"));//22.34 console.log(parseFloat("0908.34"));//908.34 console.log(parseFloat("3.1415e2"));//314.15

4.数据类型*1或者/1

    

猜你喜欢

转载自www.cnblogs.com/CccK-html/p/11375371.html
今日推荐