js中不同類型的基礎資料之間可以轉換,這種轉換是有規則可尋的,並非隨意的隨機的。在js中有5種基礎型別資料:string、number、boolean、null、undefined,其中,常用於計算或比較的型別是前面三種。
基礎資料之間的轉換
原始数据类型 | 目标类型Number |
undefined | NaN |
null | 0 |
false | 0 |
true | 1 |
数字串 | 相应的数字 |
不能转化的字符串 | NaN |
原始数据类型 | 目标类型String |
undefined | undefined |
null | null |
false | false |
true | true |
数字 | 数字字符串 |
不同類型的基礎資料之間的加法,資料先轉換為number,然後轉換為string(如果有string型資料參與運算)
1 true undefined 's' // 1 1 NaN 's'=2 NaN 's'= NaN 's'=NaNs
對象參與加減法運算
物件參與基礎類型資料運算,先轉換為基礎型別。先呼叫其valueOf方法,如果傳回的不是基礎類型,再呼叫其toString方法,如果傳回的還不是基礎類型,則拋出錯誤。但是,Date資料剛好相反
>
e f; // 報錯把上面的例子換成Object或其他型別能得到對應的結果,不過是先呼叫valueOf,再呼叫toString。