JS-6: 物件全解析

更新於 發佈於 閱讀時間約 10 分鐘

物件 Object

定義:

  • 物件是一種無序的鍵值對(key-value pair)的集合。
  • 每個鍵(key)都是唯一的,鍵的值可以是任何型別。

創建物件:

let person = {
name: "Alice",
"age year": 25, //age year中間有空白,故需用""包裹起來作為鍵值。
isStudent: true,
};

存取和確認屬性:

console.log(person.name);  // "Alice"(點表示法)
console.log(person["age year"]); // 25(方括號表示法)
console.log(person.hasOwnProperty("name")); // true (確認有沒有特定的屬性)
console.log("name" in person); // true (確認有沒有特定的屬性)

新增或修改屬性:

person.height = 170; // 新增屬性
person.name = "Bob"; // 修改屬性
console.log(person); // 輸出: { name: 'Bob', 'age year': 25, isStudent: true, height: 170 }

刪除屬性:

delete person.isStudent;
console.log(person); // { name: "Bob", 'age year': 25, height: 170 }

或者:

const {isStudent, ...remainingProperties} = person;
console.log(remainingProperties); // { name: 'Bob', 'age year': 25, height: 170 }

遍歷物件:

let person = {
name: "Alice",
"age year": 25,
isStudent: true,
};
for (let key in person) {
console.log(`${key}: ${person[key]}`);
}
/* 輸出
name: Alice
age year: 25
isStudent: true
*/

基礎方法使用:

let person = {
name: "Alice",
"age year": 25,
isStudent: true,
};
let keys = Object.keys(person); // 獲取所有鍵 [ 'name', 'age year', 'isStudent' ]
console.log(keys);
let values = Object.values(person); // 獲取所有值 [ 'Alice', 25, true ]
console.log(values);
let entries = Object.entries(person); // 獲取鍵值對 [ [ 'name', 'Alice' ], [ 'age year', 25 ], [ 'isStudent', true ] ]
console.log(entries);

好,目前你對於物件的概念有了初步掌握,我們接著繼續探索更多內容。

  1. 嵌套物件
let person = {
name: "Alice",
details: {
age: 25,
hobbies: ["reading", "swimming"]
}
};

console.log(person.details.hobbies[1]); // 輸出: "swimming"

  1. 帶有方法的物件
const person = {
name: "Alice",
age: 25,
sayhello: function() {
return `Hello, my name is ${this.name}, I'm ${this.age} years old`
},
};

console.log(person.sayhello()); // 輸出: Hello, my name is Alice, I'm 25 years old
  • this表示這個物件本身。
  • 方法與物件相關聯,而函數是獨立的。

  1. Object 構造函數

用於創建和初始化對象,透過 Object 構造函數,你可以建立物件、操作物件屬性,並存取物件相關的工具方法。

雖然日常開發中更常用物件字面值 {},但對於進階功能如凍結物件等,Object 提供了不可或缺的方法。

創建:

const obj1 = new Object();  // 相當於 const obj2 = {};

凍結物件:

const obj = { a: 1 };
Object.freeze(obj); // 凍結物件,防止添加、修改或刪除屬性。
obj.a = 2; // 無效,屬性無法修改
console.log(obj); // { a: 1 }

const obj2 = { a: 1 };
Object.seal(obj2); // 封閉物件,防止添加或刪除屬性,但允許修改現有屬性值。
obj2.a = 2; // 可以修改
obj2.b = 3; // 無效,無法添加屬性
console.log(obj2); // { a: 2 }

  1. ?.

安全地訪問物件,而不必擔心他們是否存在。

let car = {
brand: "Toyota",
model: "Corolla"
};

console.log(car?.color); // undefined
console.log(car?.brand); // Toyota

  1. 展開運算符
const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4 };

const merged = { ...obj1, ...obj2 };
console.log(merged); // { a: 1, b: 3, c: 4 }

const person = {
name: "Alice",
details: {
age: 25,
hobbies: ["reading", "swimming"]
}
};
const {name, details} = person;
console.log(name); // Alice
console.log(details); // { age: 25, hobbies: [ 'reading', 'swimming' ] }
  1. 解構
const person = { 
address: {
street: "sample-street"
}
}
const { address: { street } } = person;
console.log(street); // "sample-street"
  1. JSON 與物件的轉換

JSON 是一種輕量級的資料交換格式,通常用於在伺服器和客戶端之間傳輸數據。

它是以文字(String)的形式編寫的,遵循特定的語法規範,且設計上類似於 JavaScript 的物件字面值。

JSON 範例:

{
"name": "Alice",
"age": 25,
"isStudent": true,
"skills": ["JavaScript", "Python"]
}

JSON 與物件的轉換:

  1. 使用 JSON.parse() 將 JSON 字串轉換為 JavaScript 物件。
const jsonString = '{"name":"Alice","age":25}';
const obj = JSON.parse(jsonString);
console.log(typeof obj); // object
console.log(obj); // { name: "Alice", age: 25 }
  1. 使用 JSON.stringify() 將 JavaScript 物件轉換為 JSON 字串。
const obj = { name: "Alice", age: 25 };
const jsonString = JSON.stringify(obj);
console.log(typeof jsonString); // string
console.log(jsonString); // '{"name":"Alice","age":25}'

對於JSON 與物件之間的應用,在以後的章節會再使用到。

留言
avatar-img
留言分享你的想法!
avatar-img
電資鼠 - 您的學習好夥伴
9會員
215內容數
在當今數位時代,電資領域人才需求爆發式成長,不論是前端網頁設計、嵌入式開發、人工智慧、物聯網還是軟硬體整合,這些技術都在改變世界。而掌握 C/C++、Python、數位邏輯、電路學與嵌入式開發等大學電資領域的課程,正是進入這個高薪、高需求產業的關鍵!
2025/03/03
本章節你將了解 日期物件,包括處理日期的方法以及如何設定日期格式,切入要點的示範所有常見的使用方法範例與應用。
Thumbnail
2025/03/03
本章節你將了解 日期物件,包括處理日期的方法以及如何設定日期格式,切入要點的示範所有常見的使用方法範例與應用。
Thumbnail
2025/03/03
表單驗證是一個在用戶輸入資料時確保其正確性、完整性及格式符合要求的重要功能,它可以在用戶提交表單之前進行檢查,防止錯誤資料的傳輸。本章節將帶你初步了解其原理與使用。
2025/03/03
表單驗證是一個在用戶輸入資料時確保其正確性、完整性及格式符合要求的重要功能,它可以在用戶提交表單之前進行檢查,防止錯誤資料的傳輸。本章節將帶你初步了解其原理與使用。
2025/03/03
本篇文章深入淺出地介紹 JavaScript 正規表達式,從基本語法、常用符號、方法應用到進階的捕獲群組、斷言等,並搭配豐富的範例程式碼,幫助讀者快速掌握正規表達式的使用技巧。
2025/03/03
本篇文章深入淺出地介紹 JavaScript 正規表達式,從基本語法、常用符號、方法應用到進階的捕獲群組、斷言等,並搭配豐富的範例程式碼,幫助讀者快速掌握正規表達式的使用技巧。
看更多
你可能也想看
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
Thumbnail
這篇內容,將會講解什麼是資料型態,以及與資料型態相關的知識。包括資料型態的簡介、實數、布林值、 字串、陣列。
Thumbnail
這篇內容,將會講解什麼是資料型態,以及與資料型態相關的知識。包括資料型態的簡介、實數、布林值、 字串、陣列。
Thumbnail
這篇內容,將會講解什麼是變數,以及與變數相關的知識。包括變數、資料型態、變數賦值、變數的命名規則、變數的作用區域、變數的可重複性、內建變數。
Thumbnail
這篇內容,將會講解什麼是變數,以及與變數相關的知識。包括變數、資料型態、變數賦值、變數的命名規則、變數的作用區域、變數的可重複性、內建變數。
Thumbnail
這個系列的教學會列出基本上所有常見的造型和一些基礎 , 讓各位可以自行搭配造型~在這個第二篇呢 , 我們會來一起了解: 如何定義物件出現在畫面的哪個位置有哪些指令可以定位物件如何正確定義物件一些常見的失誤那就讓我們開始吧!
Thumbnail
這個系列的教學會列出基本上所有常見的造型和一些基礎 , 讓各位可以自行搭配造型~在這個第二篇呢 , 我們會來一起了解: 如何定義物件出現在畫面的哪個位置有哪些指令可以定位物件如何正確定義物件一些常見的失誤那就讓我們開始吧!
Thumbnail
高中數學主題練習—根式化簡
Thumbnail
高中數學主題練習—根式化簡
Thumbnail
高中數學主題練習—根式化簡
Thumbnail
高中數學主題練習—根式化簡
Thumbnail
了解這些運算子及其優先等級有助於更好地理解和編寫 JavaScript 代碼
Thumbnail
了解這些運算子及其優先等級有助於更好地理解和編寫 JavaScript 代碼
Thumbnail
在本章節中,我們將學習JavaScript的基本語法,包括如何註解代碼和如何聲明變數。瞭解這些基礎知識對於進一步學習和使用JavaScript來編寫代碼是非常重要的。
Thumbnail
在本章節中,我們將學習JavaScript的基本語法,包括如何註解代碼和如何聲明變數。瞭解這些基礎知識對於進一步學習和使用JavaScript來編寫代碼是非常重要的。
Thumbnail
國文必考!六書是什麼?口訣幫你快速判斷象形/指事/會意/形聲
Thumbnail
國文必考!六書是什麼?口訣幫你快速判斷象形/指事/會意/形聲
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News