要求:學習,並背誦全文學習
原始值
類型 |
Undefined |
Null |
String |
Boolean |
Number |
值 |
undefined |
null |
全部字符串 |
true false |
全部數字/NaN |
引用類型
Object的成員叫對象,包括Array,Function,Math,Date,JSON,RegExp等除了原始值以外的全部的類型的成員。spa
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
- ++, -- 運算符
- +, -, *, /, % 計算
須要注意的是,當 + 計算有字符串參與計算時,會轉換爲字符串。
- >, <, >=, <= 比較運算符, 操做數都不是String類型時
- ==, != 操做數中只有String類型和Number類型,或者其中有一個是Boolean
轉換爲Boolean
- && ! || 運算
- 條件運算
- if, while, do-while, for
轉換爲String
- + 號運算,其中一個操做符爲字符串
- 比較運算,其中一個操做符爲字符串
