本文主要是關于各種資料型別之間做“+”和”==“運算時資料型別的轉化方向,對于型別的具體轉換方法及轉換值不做過多贅述,
常見的資料型別轉換方法及轉換值
// 轉換方法
string -> number: (1) Number(str), (2) +str
number -> string: (1) String(num), (2) num+''
otherType -> boolean: (1) Boolean(other), (2) !!other
// 特殊的轉換值
Number(undefined); // NaN
Number([23]); // 23
({}).toString(); // '[object Object]'
1.算數運算子(+)
- 拼接(字串)
- 求和(數字)

- 示例
[23] + {}; // ([23] -> string) + ({} -> string) = '23[object Object]'
[1] + 23; // ([] -> string) + (23 -> string) = '123'
null + true; // (null -> number) + (true -> number) = 1
undefined + null; // (undefined -> number) + (null -> number) = NaN
[] + undefined; // ([] -> string) + (undefined -> string) = 'undefined'
2.比較運算子(==)
- NaN和任何型別比較都為false,包括它本身,
- (null 或 undefined) 與 (null 或 undefined) 比較時才為true,其他都為false,
- 物件與物件之間比較時,用記憶體地址進行比較
- 物件與數字進行比較時,先轉化為字串,再轉換成數字,

- 示例
[23] == {}; // 比較兩者的記憶體地址是否相同, false
[23] == 23; // ([23] -> string -> number) === 23, true
[] == true; // ([] -> string -> number) === (true -> number), false
true == '1'; // (true -> number) === ('1' -> number), true
({}) == 0; // ({} -> string -> number) === 0, false
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/301976.html
標籤:其他
上一篇:Vue面試題總結
