js中的强制类型转换
一.number类型
1.Number(xx)
<script>
Number(true) //1
Number(false) //0
Number("") //0
Number(null) //0
Number(undefined) //NaN
Number("任意字符串") //NaN
Number("2") //2
</script>
Number只能将纯数字的字符串转换成数字,其他的字符串或转义字符均转换成NaN
2.parseFloat(xx)
<script>
ParseFloat(true) //NaN
ParseFloat(false) //NaN
ParseFloatr("") //NaN
ParseFloat(null) //NaN
ParseFloat(undefined) //NaN
ParseFloat("abcd") //NaN
ParseFloat("2.0") //2
ParseFloat("2.0a") //2
ParseFloat("2.1") //2.1
ParseFloat("2.1A") //2.1
</script>
a.如果转换数字的时候小数点后面是0会自动省略(可以使用toFixed保留小数)
b.直到碰到第一个不是数字和小数点的字符就不再继续读取
3.parseInt(xx)
<script>
ParseInt(true) //NaN
ParseInt(false) //NaN
ParseInt("") //NaN
ParseInt(null) //NaN
ParseInt(undefined) //NaN
ParseInt("abcd") //NaN
ParseInt("2") //2
ParseInt("2a") //2
</script>
用法与parseFloat类似
**注意
a.Number可将undefined null 空字符串和true和false转换成数字,而parseFloat和parseInt并不能
b.NaN是number中的一个值,代表一切不是数字的值
c.如果将非字符串转换成数字,一般使用Number()(可以转换布尔和空字符串等),如果将字符串转换成数字,首选parse系列(可以将末尾的字符串清除)
**
二.number类型
1.xx.toString(xx)
可以将xx转换成字符串
问题:不能转换null和undefined
2.String(xx)
可以将xx转换成字符串
xx.toString和string(xx)作用类似,但前者有条件限制,所以建议一般使用后者
三.Boolean类型
Boolean(xx)
将xx转换成布尔型
注意:只有0,null,NaN undefined,false转换成false,其他均为true