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 與物件之間的應用,在以後的章節會再使用到。

在當今數位時代,電資領域人才需求爆發式成長,不論是前端網頁設計、嵌入式開發、人工智慧、物聯網還是軟硬體整合,這些技術都在改變世界。而掌握 C/C++、Python、數位邏輯、電路學與嵌入式開發等大學電資領域的課程,正是進入這個高薪、高需求產業的關鍵!
留言
avatar-img
留言分享你的想法!

































































本章將深入探討 JavaScript 陣列 (Arrays),這是一種用來儲存多筆相關數據的結構,比起個別宣告變數,更適合用於大量數據處理與運算。我們將學習如何建立、遍歷陣列與各種操作,並透過實作範例來熟悉 陣列方法 (Array Methods),讓數據處理更加靈活高效。
函數是可重複使用的程式碼區塊,用於執行特定任務或計算,你可以將它視為機器,它可以接受一些變數作為參數,並對其進行一些操作,接著產生輸出。 本章節帶你快速熟悉這個 JavaScript 最核心的概念之一,為更進階的觀念打好基礎。
本章節帶你非常快速地了解條件控制、switch語句、迴圈控制,這些都是程式碼的核心概念。
這篇文章鉅細靡遺地介紹 JavaScript 中數字的各種特性和操作,涵蓋了基本運算符、類型轉換、位元運算、內建的數字方法和 Math 物件的常用函式等。文中包含多個程式碼範例幫助理解每個片段知識,有助於讀者完全理解和掌握 這些JavaScript 的重要基石。
Javascript 是一種程式語言,它的功能為"替網頁提供互動功能與動態行為",在本章節中,我將會完整且深入的解析 JavaScript 變數 (Variables) 與字串 (Strings),透過大量範例來強化理解與應用。
本章節不教新東西,這邊提供一個學習資源給各位。如果你看完了前面章節的教學,相信你對於網頁的基礎知識已經有一定程度的熟練,而如果要繼續進步,實際操作、多看其他人的程式碼都是很好的學習方式,所以推薦一個網站給想繼續精進的人。 freeCodeCamp是一個開放式學習平台,目前他有許多平台提供大家來學習。
5/5freeCodeCamp開放式免費學習平台
本章將深入探討 JavaScript 陣列 (Arrays),這是一種用來儲存多筆相關數據的結構,比起個別宣告變數,更適合用於大量數據處理與運算。我們將學習如何建立、遍歷陣列與各種操作,並透過實作範例來熟悉 陣列方法 (Array Methods),讓數據處理更加靈活高效。
函數是可重複使用的程式碼區塊,用於執行特定任務或計算,你可以將它視為機器,它可以接受一些變數作為參數,並對其進行一些操作,接著產生輸出。 本章節帶你快速熟悉這個 JavaScript 最核心的概念之一,為更進階的觀念打好基礎。
本章節帶你非常快速地了解條件控制、switch語句、迴圈控制,這些都是程式碼的核心概念。
這篇文章鉅細靡遺地介紹 JavaScript 中數字的各種特性和操作,涵蓋了基本運算符、類型轉換、位元運算、內建的數字方法和 Math 物件的常用函式等。文中包含多個程式碼範例幫助理解每個片段知識,有助於讀者完全理解和掌握 這些JavaScript 的重要基石。
Javascript 是一種程式語言,它的功能為"替網頁提供互動功能與動態行為",在本章節中,我將會完整且深入的解析 JavaScript 變數 (Variables) 與字串 (Strings),透過大量範例來強化理解與應用。
本章節不教新東西,這邊提供一個學習資源給各位。如果你看完了前面章節的教學,相信你對於網頁的基礎知識已經有一定程度的熟練,而如果要繼續進步,實際操作、多看其他人的程式碼都是很好的學習方式,所以推薦一個網站給想繼續精進的人。 freeCodeCamp是一個開放式學習平台,目前他有許多平台提供大家來學習。
5/5freeCodeCamp開放式免費學習平台
你可能也想看
Google News 追蹤
Thumbnail
這篇內容,將會講解什麼是資料型態,以及與資料型態相關的知識。包括資料型態的簡介、實數、布林值、 字串、陣列。
Thumbnail
這篇內容,將會講解什麼是變數,以及與變數相關的知識。包括變數、資料型態、變數賦值、變數的命名規則、變數的作用區域、變數的可重複性、內建變數。
Thumbnail
這個系列的教學會列出基本上所有常見的造型和一些基礎 , 讓各位可以自行搭配造型~在這個第二篇呢 , 我們會來一起了解: 如何定義物件出現在畫面的哪個位置有哪些指令可以定位物件如何正確定義物件一些常見的失誤那就讓我們開始吧!
Thumbnail
了解這些運算子及其優先等級有助於更好地理解和編寫 JavaScript 代碼
Thumbnail
在本章節中,我們將學習JavaScript的基本語法,包括如何註解代碼和如何聲明變數。瞭解這些基礎知識對於進一步學習和使用JavaScript來編寫代碼是非常重要的。
前言: 雖然前面有些定義還沒有完整的解釋,但還是後面再說吧, 誰想一直看理論啊(摔本子)
※ 常用arry型態的方法: 長度: length 查詢第N個元素: [] 查詢元素在第N個: indexOf( ) 判斷是否為array: isArray() 新增和刪除: push():新增後面的數值 unshift():新增前面的數值 pop():刪除後面的數值 sh
※ 認識變數: 變數(variable)是在程式裡面把東西存起來的概念。 基於不讓電腦每次都需要重新運算,把需要花時間運算的東西先存起來,之後再直接拿出來使用,所以我們需要變數。 變數儲存的位置在電腦裡的記憶體。變數就像是一個箱子,記憶體就像是一個倉庫。箱子的名稱就是變數名稱,箱子的內容物就是
Thumbnail
這篇內容,將會講解什麼是資料型態,以及與資料型態相關的知識。包括資料型態的簡介、實數、布林值、 字串、陣列。
Thumbnail
這篇內容,將會講解什麼是變數,以及與變數相關的知識。包括變數、資料型態、變數賦值、變數的命名規則、變數的作用區域、變數的可重複性、內建變數。
Thumbnail
這個系列的教學會列出基本上所有常見的造型和一些基礎 , 讓各位可以自行搭配造型~在這個第二篇呢 , 我們會來一起了解: 如何定義物件出現在畫面的哪個位置有哪些指令可以定位物件如何正確定義物件一些常見的失誤那就讓我們開始吧!
Thumbnail
了解這些運算子及其優先等級有助於更好地理解和編寫 JavaScript 代碼
Thumbnail
在本章節中,我們將學習JavaScript的基本語法,包括如何註解代碼和如何聲明變數。瞭解這些基礎知識對於進一步學習和使用JavaScript來編寫代碼是非常重要的。
前言: 雖然前面有些定義還沒有完整的解釋,但還是後面再說吧, 誰想一直看理論啊(摔本子)
※ 常用arry型態的方法: 長度: length 查詢第N個元素: [] 查詢元素在第N個: indexOf( ) 判斷是否為array: isArray() 新增和刪除: push():新增後面的數值 unshift():新增前面的數值 pop():刪除後面的數值 sh
※ 認識變數: 變數(variable)是在程式裡面把東西存起來的概念。 基於不讓電腦每次都需要重新運算,把需要花時間運算的東西先存起來,之後再直接拿出來使用,所以我們需要變數。 變數儲存的位置在電腦裡的記憶體。變數就像是一個箱子,記憶體就像是一個倉庫。箱子的名稱就是變數名稱,箱子的內容物就是