今天要來學習JavaScript 裡的「物件(Object)」怎麼建立、拆解、合併與操作!
今日的目標:
物件是 JS 中最常見的資料型別之一,用來「成對」儲存資訊:key(屬性名) + value(值)
我們會用 {} 來建立資料,然後透過「點」或「中括號」存取屬性。
就像一個資料夾,裡面放著一堆標籤和內容:
const user = {
name: 'Gao', // key 預設是字串(name 等同 'name')
age: 23,
isMember: true
};
物件裡還可以放物件或陣列,用來表達更複雜的結構:
const post = {
title: 'JS 教學',
author: { name: 'Gao', id: 7 },
tags: ['JS', 'Object']
};
這樣你就能像拿資料夾一樣一層層打開取值
像是post.author.name → 'Gao'
如果常常要取同樣的 key,我們可以把他「拆開」成變數:
const { title, author } = post;
這樣就不用 post.title、post.author 一直打。
還能改名字、加預設值,非常靈活。
想複製或合併物件時:
const user = { name: 'Gao', age: 23 };
const more = { city: 'Taipei' };
const combined = { ...user, ...more }; // { name: 'Gao', age: 23, city: 'Taipei' }
想拿出部分屬性時:
const { age, ...rest } = combined;
// rest = { name: 'Gao', city: 'Taipei' }
用來檢查某個屬性名是不是存在於物件中~
console.log('name' in user); // true
讓物件變得「可遍歷」,對資料清洗或轉換非常實用!而且方便用 for...of 走訪:
const product = { id: 1, name: 'Bag', price: 500 };
Object.keys(product); // ['id', 'name', 'price']
Object.values(product); // [1, 'Bag', 500]
Object.entries(product);// [['id',1], ['name','Bag'], ['price',500]]