# JavaScript|物件 Object:90s 畢業紀念冊大曝光,二十年後我還記得你 💘 90s 畢冊記錄你家住那裡、血型 A 或 B、養狗還是養貓? CRUD 你的改變跟喜好全部 patch 🪬 陣列資料結構(array data structure → Array) → [JavaScript|戀愛魚塘管理💞 用陣列 Array 管理 match 才專業 💅](https://hackmd.io/@Ph6kL2hVQeu-dSTdobpoJw/ByqK9u-Klx) 🪬 物件資料結構(Objects data structure → Object) 🔫 你目前位置 aka 本篇主題 ![JavaScript 物件 Object 教學:key/value 與 CRUD 入門](https://hackmd.io/_uploads/S1QPwFGsxg.png) ###### 8 年級ㄉ你各位應該都有寫過ㄅ 🚬 這些欄位就是我們今天要學ㄉ物件資料! 一起開始吧 ☻(這個主題主包真ㄉ是想ㄌ很久才想到) ## 🏠 什麼是 Object(物件) 和陣列不同的是物件資料是 **「沒有特定順序且可以詳細描述」** → 也就是**無序資料集**,透過鍵-值資料 ` key: value ` 的方式來存放。 ### 💌 最重要ㄉ key & value 📩 key → 是依附在物件的屬性名稱 📨 value → 是屬性的值(可以是字串、數字、布林、陣列、物件,甚至函式) 來ㄍ原味ㄉ寫法 ↓ ```javascript! let 物件命名 = { key : value, // value 可以是字串 陣列 數字 方法 : function(){ //要執行的動作 } } ``` 你都努力看到這裡ㄌ 〠 那麼,值得我寫一張友誼小卡,證明我們的塑膠友情 ❤︎ ```javascript! // 首先 先宣告 這張是屬於我ㄉ好友卡! let anna14 = { // 我的本名,以免你誤會 anna 是隔壁班孫小美 🫥 name: '李安娜', // 輸入電話 方便你長大以後打給我💓 phone: '0988-123-456', // 讓你在我失聯ㄉ時候去查 INTP 在想什麼 mbti: 'INTP', // 喔對 我生理女 gender: '生理女', //興趣也來一下,方便讓你勾起我ㄉ興趣 hobbies: ['躺躺', '散步', '洗車'], // 只要你呼叫,我就回應你 24hr 隨時隨地 ❤︎ greet: function(){ console.log(`我是 ${anna14.name} 打給我 ${anna14.phone} 🔫 `) } } anna14.greet(); ``` ![JavaScript 物件 Object 新手完全指南|key-value 鍵值 與 CRUD 操作](https://hackmd.io/_uploads/HJxEsIPplg.png) ###### ☻ 跨界小聯想,Object 是不是也很像類別呢?都是自定義樣式(屬性) ```css! .類別{ background-color: yellow; // 背景設定黃色的 font-weight: bold; // 字體要粗體 } ``` ## 🛢️ CRUDE pop() 掉 E → CRUD 物件資料操作! ###### ↑ [ 'C','R','U','D','E' ].pop() 不知道在寫什麼ㄉ 請回上篇複習陣列 → [JavaScript|戀愛魚塘管理💞 用陣列 Array 管理 match 才專業 💅](https://hackmd.io/@Ph6kL2hVQeu-dSTdobpoJw/ByqK9u-Klx) 🤡 what is CRUD? CRUD → 就是 Create / Read / Update / Delete 的首字字母 ### 🦉 怎麼調整物件屬性並且進行 CRUD 呢? 物件屬性可隨時新增,但在使用前需先為物件屬性賦予值 `=` 寫入值,以免得到 undefined。 ###### 💎 小貼士:什麼是賦值? → 賦予值 `=` ###### 💃 小口訣 → 在物件常值中用 `:` 定義初始屬性 / 之後要新增、更新屬性用 `=`。 🅒 - Create ( 建立新屬性 ) ```javascript! // 學習基礎 物件.新的 key ( 屬性 ) = value ( 新的值 ) // 練習就不基礎 → 過ㄌ 20 年 李安娜有超討厭ㄉ東 必須記錄 anna14.unlike = '愛情片' // → 李安娜超級討厭愛情片,記得不要約他〠 // 💎 學習重點:因為要加入新的值和屬性,所以要使用等號來寫入值!( 如果忘記去樓上找貓頭鷹先生🦉 ) ``` ![JavaScript 物件 Object 教學:key/value 與 CRUD 入門](https://hackmd.io/_uploads/SJxIn8D6ge.png) ↑ 成功把李安娜討厭ㄉ東紀錄上去了 ✅ 已記錄 🅡 - Read ( 查詢原本的屬性 ) ```javascript! // 學習基礎 物件.要查的屬性 // 練習就不基礎 → 忽然忘記李安娜ㄉ mbti 趕快印出來看一下 console.log(anna14.mbti); ``` ![JavaScript 物件 Object 教學:key/value 與 CRUD 入門](https://hackmd.io/_uploads/B1Yx6Iwaex.png) 🅤 - Update ( 更新屬性的值 ) → 重新賦值 ```javascript! // 學習基礎 物件.要改的那個屬性值 = 新的值 // 練習就不基礎 → 李安娜改名字ㄌ,更新資料! anna14.name = '李鮭魚 🍣' // 💎 學習重點:因為要更新屬性的值,所以要使用等號來寫入值!( 如果忘記再去樓上找貓頭鷹先生 again 🦉 ) ``` ![JavaScript 物件 Object 教學:key/value 與 CRUD 入門](https://hackmd.io/_uploads/H1SqT8walx.png) ↑ 成功把李安娜ㄉ新名字修改成 李鮭魚 🍣 ㄌ ✅ 已記錄 🅓 - Delete (刪除屬性) → 直接在 物件.key 前面加 `delete` ```javascript! // 學習基礎 delete 物件.要刪的那個屬性 // 練習就不基礎 → 生理女不是很重要吧,刪除! delete anna14.gender ``` ![JavaScript 物件 Object 教學:key/value 與 CRUD 入門](https://hackmd.io/_uploads/r1EJRLDpgg.png) 🪬 懶人小結:新增屬性、改變值都使用等號給值! --- 今天你已經把 **物件入門 𝘅 CRUD** 物件操作看完真ㄉ是超讚ㄉ啦 🔫 ![JavaScript 物件 Object 教學:key/value 與 CRUD 入門](https://hackmd.io/_uploads/rkWJFywiex.jpg) 我們下篇見~💅✨ --- 📺 JS 新手宇宙 - EP . 04 [ 🩷 EP1 《 函式和參數名稱、傳值再也不會搞混! 》](https://hackmd.io/pPUQiXn2TgGJrDTSLJR6sw) [🩷 EP2 《 for 迴圈:愛你 10 天計畫 》](https://hackmd.io/@Ph6kL2hVQeu-dSTdobpoJw/rJF-uhgOll) [🩷 EP3 《 陣列 Array:push、pop、splice 魚塘管理💅 》](https://hackmd.io/@Ph6kL2hVQeu-dSTdobpoJw/ByqK9u-Klx) ###### ( 你在這裡 ↓ ) [🩷 EP4 《 物件 Object:90s 畢業紀念冊大曝光,二十年後我還記得你 💘 》](https://hackmd.io/@Ph6kL2hVQeu-dSTdobpoJw/SkkxzBY9ee) 參考資料: {%preview https://developer.mozilla.org/zh-TW/docs/Learn_web_development/Core/Scripting/Object_basics %} {%preview https://zh.wikipedia.org/zh-tw/%E9%94%AE-%E5%80%BC%E5%AD%98%E5%82%A8 %}