1、什么是number数据类型
有效数字(正数、负数、0)NaN(not a number)可以理解为非有效数字
2、其他数据类型转number类型
三种方法:Number()、parseInt()、parseFloat()
1、Number(val)
- 字符串:只有里面含有非有效数字就为NaN
- 布尔:true为1,false为0
- null:为0;
- undefined:为NaN
- 普通对象:会隐实转化为字符串再进行转数字,而对象转字符串都是'[object Object]',因此包含非有效数字,所以为NaN;即普通对象转数字都是NaN
- 数组:会将数组从左往右的每一项都变为字符串,然后每一项之间使用逗号进行拼接,最后组成新的字符串;空数组为0
2、parseInt(val) | parseFloat(val)
从左向右的依次查找,直到遇到非有效数字就停止,返回查找的结果,parseInt不可以识别小数点,parseFloat可以识别一位小数点
3、练习
1、Number(val)
Number('12') --->12
Number('12PX') --->NaN
Number(true) --->1
Number(false) --->0
Number(null) --->0
Number(undefined) --->NaN
Number({}) --->NaN
Number([]) --->0
Number([1]) --->1
Number([1,2]) --->NaN
2、parseInt(val) | parseFloat(val)
parseInt('12') --->12
parseInt('12.2') --->12
parseInt('12px') --->12
parseInt('width:12.2px') --->NaN
parseFloat('width:12.2px') --->NaN
parseFloat('12.2') --->12.2
parseFloat('12.2.2') --->12.2
parseFloat('12') --->12
3、判断一个数字是不是有效数字
NaN 和任何数都不相等,包括它自己本身,因此判断一个数是不是有效数字使用isNaN();是有效数字返回false,不是有效数字返回true (自己总结的小技巧:看这个数字Number()的结果,如果不是NaN,那isNaN的结果就是false)
isNaN("12.2PX") -->true
isNaN("12.2") -->false