今天要來討論JS的 1 + "1"
。
如果當兩個操作數都是數字時,+
會執行數字相加。例如,1 + 1
結果是 2
。
那如果是"1"+"1",
就變成字符串相加變成11
。
那我們今天要講的是1 + "1"
,答案是11,為甚麼呢?
這是一個類型強制轉換,今天當 +
遇到不一樣的類型時,JavaScript 首先會嘗試將非字符串轉換為字符串,他會去識別到一個是數字,一個是字串,然後JavaScript就會將數字 1
強制轉換為字符串 "1"
,變成11進行字符串連接。
一旦遇到字符串,後面的加法都變成字符串連接。
像這樣console.log("1" + 1 + 1); // 輸出: "111"
那延伸來講~
變數 :
他是儲存數據的容器。在不同的編譯語言中,變數的聲明和使用方式也會有所不同。
let num = 5; // 數字型變數
let text = "Hello"; // 字符串型變數
let isTrue = true; // 布林值變數
console.log(num + 3); // 8
console.log(text + " World"); // Hello World
那不一樣的變數類型和操作方式都會影響程式的行為結果
console.log(1 + "1"); // "11" (字符串拼接)
console.log(1 - "1"); // 0 (減法運算符 - 預期其操作數是數字)
函式 :
接受參數返回值 :
function add(a, b) {
return a + b;
}
console.log(add(1, 2)); // 3
console.log(add("1", "2")); // "12"
判斷式 :
根據不同條件執行不同的代碼 :
let age = 20;
if (age >= 18) {
console.log("adult");
} else {
console.log("kid");
}
迴圈 :
迴圈常用於重複執行程式碼,迴圈類型通常用 for
for (let i = 0; i < 5; i++) {
console.log(i + " + 1 = " + (i + 1));
}
//0 + 1 = 1
//1 + 1 = 2
//2 + 1 = 3
//3 + 1 = 4
//4 + 1 = 5
參考資料 :
[ 技術筆記 ] JavaScript|何謂強制轉型(coercion)以及如何作到轉換型別 - Sunny Huang - Medium