JS 基礎篇 (4) 自動轉型
自動轉型的規則
JS 在運算與比較的過程中,常會為兩側的數值做自動轉型。
在兩個等號的 == 的比較運算式下,若雙方資料類型不同時,會「自動轉型」。
規則如下:
1 | // 其中一個值為 Boolean 的情形下,true 轉型為數字 1,false 轉型為數字 0 |
數值的大於 > 與 小於 <
在 JavaScript 中,當使用大於 > 或小於 < 的比較運算符時,如果兩側的值不是同一種類型,JavaScript 會嘗試將它們轉換為相同的類型,然後再進行比較。這種自動轉型的過程被稱為類型轉換或類型強制轉換。
下面是一些類型轉換的規則:
- 如果兩側都是字符串,則直接比較字符串的 Unicode 字符序列。
- 如果一側是字符串,另一側是數字,則將字符串轉換為數字後進行比較。
- 如果一側是布爾值,則將布爾值轉換為數字後進行比較(true 轉換為 1,false 轉換為 0)。
- 如果其中一側是物件,會先使用 valueOf 方法嘗試轉換為基本型別值,如果 valueOf 返回的不是基本型別值,則使用 toString 方法轉換為字符串後進行比較。
- 如果以上都不符合,則會返回 false。
1 | console.log(5 > "3"); // 輸出: true,"3" 被轉換為數字 3 |