数据类型转换只针对于基本数据类型,复杂数据类型大多数情况下用不到数据类型转换。
其他数据类型转换为数值
Number(数据)
规律:1. true为1,false为0,null为0,undefiend为NaN, 空数组为0,
2. 引用数据类型转化时先转为字符串,再转为数值。
3. 只能识别纯数字字符串,可保留一位小数,只能识别1个小数点
<script>
console.log(Number('123'));//123
console.log(Number('123.456'));//123.456
console.log(Number('123.456.789'));//NaN
console.log(Number('123px'));//NaN
console.log(Number(true));//1
console.log(Number(false));//0
console.log(Number(null));//0
console.log(Number(undefined));//NaN
console.log(Number({}));//NaN
console.log(Number({name:'张三'}));//NaN
console.log(Number([]));//0
console.log(Number(['100']));//100
console.log(Number(['100.100']));//100.1
console.log(Number(['100.100.100']));//NaN
</script>
parseInt(数据)
规律:1. 不识别小数点(遇到小数点就停止转化了)
2. 遇到字符就停止转化了
3. 其他类型就转为NaN, 数组中特例类似于字符串
<script>
console.log(parseInt('123'));//123
console.log(parseInt('123.456'));//123
console.log(parseInt('123px'));//123
console.log(parseInt('px123px'));//NaN
console.log(parseInt(true));//NaN
console.log(parseInt(false));//NaN
console.log(parseInt(null));//NaN
console.log(parseInt(undefined));//NaN
console.log(parseInt({}));//NaN
console.log(parseInt({name:"张三"}));//NaN
console.log(parseInt([]));//NaN
console.log(parseInt(""));//NaN
console.log(parseInt([100]));//100
console.log(parseInt([100.100]))//100
console.log(parseInt(['123px']));//123
</script>
parseFloat(数据)
规律:1. 可识别一位小数点,遇到字符就停止转化了。
2. 一开始就不是数字就NaN
3. 其他类型转化为NaN, 数组中特列类似于字符串
<script>
console.log(parseFloat('123'));//123
console.log(parseFloat('123.123'));//123.123
console.log(parseFloat('123.123.123'));//123.123
console.log(parseFloat('123px'));//123
console.log(parseFloat('px123px'));//NaN
console.log(parseFloat(true));//NaN
console.log(parseFloat(false));//NaN
console.log(parseFloat(null));//NaN
console.log(parseFloat(undefined));//NaN
console.log(parseFloat({}));//NaN
console.log(parseFloat({name:"张三"}));//NaN
console.log(parseFloat([]));//NaN
console.log(parseFloat(""));//NaN
console.log(parseFloat(['123']));//123
console.log(parseFloat(['123.123']));//123
console.log(parseFloat(['123.123.123']));//123
console.log(parseFloat(['123px']));//123
console.log(parseFloat(['px123px']));//NaN
</script>
其他数据类型转化为字符串
String(数据)
<script>
console.log(String(123));//123
console.log(String(true));//true
console.log(String(false));//false
console.log(String(null));//null
console.log(String({}));//[object Object]
console.log(String([]));//空,什么都没有
console.log(String(""));//空,什么都没有
console.log(String(['123',456]));//123,456
</script>
数据.toString()
与String不同点,null,undefined没有toString方法,使用会报错
其他类型转化为布尔值
规律:对于单个数据而言,0,NaN, " " , null , undefined是假,其他为真。
isNaN
判断当前是否是数字,是返回false, 否返回true.
isNaN(数据)
内置进行隐式转换。先转为数字(符合Number的规律),再判断。