基本型別包含:
- Number
- String
- Boolean
- Undefined
- Null
- Symbol
物件包含(在 JavaScript 裡,所有不屬於基本型別的類型,都屬於物件):
- Object
- Array
- Function
JS型別錯亂問題
JS為動態程式語言 (dynamic language),也就是說不需要事先為變數指定型別,JavaScript 會自動根據你指派的值,來動態定義資料型別。
壞處是他會過度自動轉換型別,「型別強制轉換」(coercion),會在運算中強制發生,有可能會打亂原本程式設計邏輯,因此最好的方式就是事先防止意外發生:
- 永遠使用嚴格的等於===,如果使用==或是!= JS會自動轉換型別
- 運算前透過 if/else 等自行檢查型別
(if (typeof a === typeof b))
False 和 True 的類別
五大False
- 0
NaN
- 這是 Number 裡表示 Not a Number 的一種值''
- 空字串false
null
undefined(有變數,只是變數尚未被賦值或定義)
True
- []
- {}
- 以及其他非False的型別