JS資料型別轉換規則

daxuesheng發表於2021-09-09

JS資料型別

基礎型別

  • String

  • Boolean

  • Number

  • Symbol

  • Undefine

  • Null(typeof(null) === "object")

複合型別: 物件

  • Object(Array, Json)

顯示型別轉換

Number的原始型別轉換規則

  • 數值轉換後還是數值

  • 字串如果可以解析為數值則為數值, 空字串為0, 無法解析的字串為NaN

  • 布林轉數值, true轉為1, false轉為0

  • null轉換為0

圖片描述

原始型別轉換Number

Number的物件型別轉換規則

傳入例項M, 先呼叫M的valueOf(), 如果返回值V為基本資料型別, 則直接使用Number(V), 求最終返回值
如果T不屬於基本資料型別, 則呼叫M的toString(), 如果返回值S為基本資料型別, 則直接使用Number(S),求最後的結果, 如果S不屬於基本資料型別, 則直接返回NaN

圖片描述

物件型別轉換1


圖片描述

物件型別轉換2


String的原始型別轉換規則

  • 數值(Number)轉為相應的字串

  • 字串(String) 轉換後還是字串

  • 布林值(Boolean)轉換規則: true => 'true', false=> 'false'

  • undefine 轉換為"undefine"

  • null 轉換為'null'

圖片描述

String原始型別轉換

String 的物件型別轉換規則

與Number的物件轉換規則類似, 區別是: 先呼叫物件的toString(), 然後再呼叫valueOf()
其實正常情況下, 物件呼叫自身的toString()後, 物件就可以轉換為string基本型別, valueOf() 沒有機會被呼叫, 但萬事有個例, 如果我們重新定義了物件的toString()方法,使其返回非基本型別的值, 那樣就有機會呼叫物件的valueOf()方法了

圖片描述

String物件型別轉換規則

Boolean的原始型別轉換 和 物件型別轉換

undefined,null,NaN,'',-0,+0皆為false, 其餘為true

隱式型別轉換

四則運算+, -, *, /

圖片描述

隱式型別轉換之四則運算

判斷語句 if()

Native呼叫 console.log(), alert()





來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4692/viewspace-2803726/,如需轉載,請註明出處,否則將追究法律責任。

相關文章