JS -- number資料型別詳解

不要情緒發表於2020-02-04

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

相關文章