JS中其他資料型別轉為number資料型別的方法

不要情緒發表於2020-01-07

JS中的資料型別

  • 基本資料型別
    • number
    • string
    • Boolean
    • null
    • undefined
  • 引用資料型別
    • 物件
      • 普通物件 {}
      • 陣列 []
      • 正則 /內容/
      • math
      • 日期
    • 函式
  • symbol

number資料型別

它包括正數、負數、0 以及 NaN 都是number資料型別,那麼其他的資料型別想要轉化為number應該使用什麼方法?

第一種方法:Number

對於基本資料型別中的其他幾類:

string型別,如果裡面含有特殊字元,怎麼值為NaN,如果是空字串,那麼為0,如果字串裡面只有數字,那麼就是這個數值

  • Number("12") //12
  • Number("12px") //NaN,含有特殊字元
  • Number("") //0
  • Number("12.2") //12.2
  • Number("12.2.2") //NaN,正常的數字不會有兩個小數點

Boolean型別,如果是false,則為0,如果是true,則為1

  • Number(true) //1
  • Number(false) //0

null 和 undefined 來說

    • Number(null) //0
    • Number(undefined) //NaN

對於引用資料型別中的幾種

對於引用資料類似,它都會隱實的去呼叫toString方法

  • 普通物件呼叫完就是"[object Object]",因此它是含有特殊字元的字串,所以普通物件都是NaN
  • 陣列物件呼叫toString方法之後需要根據陣列的內容去判斷值
    • [] //值為0,因此轉為數字為0
    • [1] //值為1 因此轉為數字為1
    • [1,2] //值為1,2 因此轉為數字為NaN
Number({})  //NaN
Number([])  //0
Number([1])  //1
Number([1,2])  //NaN
複製程式碼

第二種方法:parseInt

從左向右去解析,他的結果是一個整數,遇到特殊字元或者小數點就停止。

parseInt("12.2")   //12
parseInt("12.2px")   //12
parseInt("width:12.2px")   //NaN
parseInt(false)   //NaN
parseInt(null)   //NaN
parseInt(undefined)   //NaN
parseInt({})   //NaN
parseInt([])   //NaN
複製程式碼

第三種方法:parseFloat

從左向右去解析,他的結果是一個浮點數,遇到特殊字元會停止,遇到第二個小數點也會停止。其餘和parseInt一樣

parseFloat("12")  //12
parseFloat("12.2")  //12.2
parseFloat("12.2px")  //12.2
parseFloat("width:12.2px")  //NaN
parseFloat("12.2.2")  //12.2
複製程式碼

以上就是JS中常用的其他資料型別轉為number資料型別的三種方法。

相關文章