筆記:隱式轉換規則

學習並背誦全文

原始值

類型 Undefined Null String Boolean Number
undefined null 全部字符串 true false 全部數字/NaN

引用類型

Object的成員叫對象,包括Array,Function,Math,Date,JSON,RegExp等除了原始值以外的全部的類型的成員。學習

valueOf / toString

Object String Array Number Date Boolean Function
valueOf 原始值 原始值 原始值 原始值 毫秒時間戳 原始值 string
toString [Object Object] 原始值 join方法返回的結果 數字字符串 本地時間字符串 'true'/'false' string

Boolean(x)

X Undefined Null String Boolean Number Object
Boolean(X) = true - - 非空字符串 true 非0 非NaN 全部
Boolean(X) = false undefined null 空字符串 false 0 NaN

Number(x)

X Undefined Null String Boolean Number Object
Number(X) = number - - 全爲數字 - 原樣返回 desc: 先調用valueOf再轉換爲Number
Number(X) = 0 - null '0' false 0 -
Number(X) = 1 - - '1' true 1 -
Number(X) = NaN undefined - 包含數字以外的字符 - NaN -

String(x)

X Undefined Null String Boolean Number Object
String(x) 'undefined' 'null' 原樣返回 'true'/'false' toString結果 先轉爲原始值,而後調用toString

Object(x)

x undefined null Boolean Number String Object
Object(x) {} {} 原始值爲X的Boolean對象 原始值爲X的Number對象 原始值爲X的String對象 原值輸出
Object(undefined) // {}
Object(null)  // {}
Object(true)   // Boolean {true}
Object(false)  // Boolean {false}
Object(1)      // Number {1}
Object('hello') // String {"hello"}
Object({ a: 1 }) // {a: 1}
複製代碼

場景

轉換爲Number

  • 一元 +, - 運算符
+{} = NaN
+'20' = 20
-'20' = -20
+[] = 0;
+[1] = 1;
+[1, 2] = NaN
複製代碼
  • ++, -- 運算符ui

  • +, -, *, /, % 計算spa

須要注意的是,當 + 計算有字符串參與計算時,會轉換爲字符串。3d

  • >, <, >=, <= 比較運算符, 操做數都不是String類型時code

  • ==, != 操做數中只有String類型和Number類型,或者其中有一個是Booleancdn

轉換爲Boolean

  • && ! || 運算
  • 條件運算
  • if, while, do-while, for

轉換爲String

  • + 號運算,其中一個操做符爲字符串
  • 比較運算,其中一個操做符爲字符串

相關文章
相關標籤/搜索