### coercion - 在程式語言中,coercion(強制轉換)指的是**將一種資料類型轉換成另一種的過程**。這種轉換可以是隱式的(由程式語言自動執行)或顯式的(由程式員明確指定)。 - 由於 JavaScript 屬於 - 動態型別(Dynamic Typing)的程式語言,故在撰寫時,有些時後他會自動幫你轉型資料型別,由後續的範例來深入瞭解吧: ### example: - 這是一個簡單的運算案例: - 正常人都能聯想得到的答案,沒問題。 ```js var a = 3 + 4; console.log(a); // 7 ``` - 但加法運算子,除了數值 number 的相加,亦可處理字串的相加。 ```js var a = "Hello " + " World!"; // -> 空白在結果顯示也會產生空白。 console.log(a); // outputs: Hello World! ``` - 你可能也看過,數值與字串同時在加法運算子的案例: - 數值1 `+` 字串"2",你覺得會是什麼結果? ```js var a = 1 + "2"; console.log(a); // outputs: 12 這很奇怪對吧? 為什麼是 12 難道數學失序了?? ``` - 因為,實際上 "2" -> 代表著一個 string 而不是數值。 - 然而,這邊的操作恰好產生了,**隱式轉型** - Implicit Coercion。 - 若這邊不太理解的話,在數學處理上可能會是一個大坑。 - 這正是 JavaScript Engine 自動判讀產生的 **隱式轉型**。 ### 字串與數值,在記憶體中屬於不同類別: