+
」加法運算子 (P2-28)let a = 1 + 1;
console.log(a); // 2
但相乘就不一樣,相乘是為了做"數學運算"使用的,所以它會先轉成"數字"再做相乘
let A = "1" * "1";
console.log(A); // 1
當使用加法運算子("+")時,只要有一個字串出現,就會將其餘的部分一併轉為"字串"再做運算
所以 1 + "1" 會等於 "11",也就是兩個字串會合併。
let b = 1 + "1";
console.log(b); // 11
let c = "1" + "1";
console.log(c); // 11
let d = 1 + "2" + 3;
console.log(d); // 123
undefined
相加undefined
時,JavaScript會嘗試將它轉為數值型別。undefined
無法轉成數值,因此會得到NaN
(Not-a-Number)的結果。NaN
與任何數值型別的值運算都會得到NaN
的結果。let e = 1 + undefined;
console.log(e); // NaN
/*複習一下,用大括號{}宣告一個物件*/
let f = 1 + {};
console.log(f); // "1[object Object]"
const dog = {
color:"white",
age : 2
}
let g = 1 + dog;
console.log(g); // "1[object Object]"
/*
複習一下,物件屬性的存取(用小數點.或中括號[])。
以及,所以物件的屬性名都是字串型別。
*/
let h = 1 + dog.color; // 用小數點
let i = 1 + dog.["age"]; // 用中括號
console.log(h); // "1white"
console.log(i); // 3
參考資料:
JavaScript - 字串型別與轉換