---
# System prepended metadata

title: 何謂強制轉型、以及如何作到轉換型別？
tags: [JS 直播班 - 2021 秋季班]

---

###### tags: `JS 直播班 - 2021 秋季班`

何謂強制轉型、以及如何作到轉換型別？
===

### 型別轉換分兩種
1. Type Conversion ( type casting ) 發生於靜態型別語言的編譯時期，可以是隱含的或明確的 (通常是後端語言)
2. Type Coercion 發生於動態型別語言在執行時期所進行的轉換，只會是隱含的 (JavaScript)

### 強制轉型範例
- JavaScript coercion 的結果永遠都會是純量的基本型別值，像是 string、 number、boolean，而不會有任何強制轉型的結果是像 object、function 這樣複雜的值

1. 如果能從程式碼明顯看出某個型別轉換動作是刻意進行的，就是『 明確的強制轉型（ explicit coercion ） 』
**ex:**
![](https://i.imgur.com/lMcxpLj.png)

2. 如果型別轉換動作是某個刻意進行的其他作業所產生的較不明顯的副作用，就是『 隱含的強制轉型（ implicit coercion ）』
**ex:**
![](https://i.imgur.com/xJlxgaa.png)

### 怎樣可以做到轉換型別?
- 可以使用JavaScript提供的一些方法及包裹物件方法來達到轉型
**ex:**
![](https://i.imgur.com/gbP7rLL.png)

---
### 參考資料來源
https://developer.mozilla.org/en-US/docs/Glossary/Type_coercion
