之前有提到動態型別。
JavaScript屬於動態型別,代表當在執行階段才會被賦予型別。(更多內容可以參考 動態型別 文章)
這個被動態賦予的型別又分為兩大類
原始型別與物件型別。
看看範例原始碼是那個類型吧?
var a, b, c, d; // undefined
a = 1; //number
a = '文字'; //string
b = true; //boolean
c = {}; //物件object
d = null; //object - 這JS的一個錯誤,無法更改
console.log(typeof e); //undefined - 沒有出現not defined是因為typeof的保護措施
原始型別
是只代表單一值的一種資料型別,不像 物件型別 有預設方法讓我們能夠直接取用。
但是因為原始型別中有包裹物件,我們能夠使用一些屬性與方法。
- 布林值(Boolean) - true / false
- Null 變數上定義空值
- Undefined 變數上沒有給值
- String
- Number
- Symbol
- Biglnt 整數數值
原始型別中的包裹物件
原始型別不允許自由擴增屬性,但是因為有包裹物件,因此有屬性與方法可以使用(除了undefined/null之外)。
參考 - 包裹物件篇
物件型別
可以自由擴增屬性
除了上面那六種,其他都是物件型別,包含"陣列"、"函式"等。