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
複製程式碼