JS 基礎篇 (2) 物件、陣列及型別的判斷
物件 Object
一個物件可以是多種屬性的集合,用來記錄一組彼此有關係的資料,比如person會有姓名、工作、年齡等資料。
物件可以由 new 關鍵字建立,在新增屬性及方法
1 | let person = new Object(); |
或由 { } 直接建立並指定屬性,此種方法稱為【物件實字】
1 | let person = { |
物件屬性存取
使用 . 來存取
1 | let person = { |
或使用 [ ] 來存取
1 | let person = { |
屬性新增
若想為物件新增屬性的話,直接用 = 指定就可以了:
1 | let person = { |
屬性刪除
若要刪除屬性,則透過 delete 關鍵字刪除。
1 | let person = { |
另外要提到一點, js裡變數無法被刪除,屬性才可以
1 | var a = 1; |
上面 a 是經過 var 宣告的變數,不可被刪除。b 沒有經過變數宣告,會直接成為全域物件 window 內的屬性,可以被刪除。
判斷屬性是否存在
當要判斷物件中存不存在某個屬性時,可檢查該屬性是否為 undefined。
1 | const obj = {}; |
或者用 hasOwnProperty() 或 in 來檢查
1 | let obj = { |
未定義的物件屬性預設值
當查找一個物件中不存在的屬性時,會回傳 undefined,並且物件中無法在不存在的屬性上新增值
1 | let obj = { |
解決方法是新增一個 空物件再去設值
1 | let obj = { |
另一種是無法一開始就確定結構時,直接指定屬性為物件。
1 | let obj = { |
陣列
JS的陣列可以看做是一種特別的物件,同一個陣列內可以是原始資料類型、另一個陣列、物件或是函式。與物件不同,陣列是有順序性的集合,所以只能透過[ ]加上索引來存取。
陣列可透過 new 關鍵字建立
1 | const a = new Array(); |
或是陣列實字的方式
1 | const a = []; |
陣列長度
陣列的長度可以用 .length 取得
1 | const ary = ['a', 'b', 'c']; |
也可以由 .length 來更改
1 | const ary = ['a', 'b', 'c']; |
取得陣列項目
陣列的索引由 0 開始計算,也就是說要取得陣列的第一個元素,要用 array [0]來取得,如下:
1 | const ary = ['a', 'b', 'c']; |
判斷是否為陣列
當用 typeof 來判斷一個陣列時,會得到 Object。但若真想判斷某變數是陣列而非物件時,用 isArray():
1 | Array.isArray([]) // true |
陣列方法
- 項目新增: 想要在陣列末端新增元素時,可以用 push()方法
- 移除陣列末端項目 pop()
- 移除陣列前端項目 shift()
- 加入項目至陣列前端 unshift()
- 在陣列中尋找項目的索引值 indexOf
- 移除指定位置項目 splice()