# Vue學習 #1 ES6縮寫 ###### tags: `Vue 直播班 - 2022 春季班` `Vue` ## 語法糖 (讓原本語法變簡潔) ### <font color=#831437> 物件內函式 ---- 把:function拿掉</font> ```=JavaScript const obj = { myName: '物件', fn: function() { return this.myName; } } // #2 物件字面值 Object literals // #2-1 物件內的函式 const obj3 = { myName: '物件', fn(){ // 請改為縮寫 把:function拿掉 return this.myName; } } ``` ### <font color=#831437> 物件內放入變數 --- 變數也是物件</font> ``` =JavaScirpt // #2-2 物件內的變數 //在一個物件中放入一個物件 const person = { name: '小明' }; const human={ person:person //<=重點在這裡 } console.log(human); //----------------------- const guitarType='j-45'; const guitar={ guitarType //原本寫法想把 type放進去屬性,要變成 type:guitarType , 語法糖可以直接縮寫將變數放進去 }; console.log(guitar); ``` ### <font color=#831437> 陣列合併 --- 運用[...array]</font> ```=JavaScript const groupA = ['小明', '杰倫', '阿姨']; const groupB = ['老媽', '老爸']; const groupAll = groupA.concat(groupB); let groupTwo=[...groupA]; //代表的是將 groupTwo這個陣列設定成groupA console.log(groupTwo); let groupThree=[...groupB]; //代表的是將groupThree這個陣列設定成groupB console.log(groupThree); let arrayConbine=[...groupA , ... groupB] //代表將groupA和groupB組合再一起放到arrayConbine,效果跟concat一樣 console.log(arrayConbine); ``` ### <font color=#831437>物件擴展 --- 將物件的內容都放到另一個物件上 </font> ```=Javascirpt // #3-2 物件擴展 // 新增一個物件包含新方法,同時加入原有的方法 const methods = { fn1() { console.log(1); }, fn2() { console.log(1); }, } const newMethod={ ...methods //將methods的函式放到newMethod裡面 } console.log(newMethod); ``` ### <font color=#831437> 轉成純陣列 --- NodeList轉成array</font> ```=JavaScript // #3-3 轉成純陣列 const doms = document.querySelectorAll('li'); //用querySelectorAll抓元素會傳來的是NodeList並不會是單純的array console.log(doms); // 請轉為純陣列 const array=[...doms]; //轉為純陣列 console.log(array); ``` ### <font color=#831437>預設值 --- 將函式參數直接給一個值</font> ```=Javascirpt function sum(a=6, b=2) { // 請加入預設值避免錯誤 //將a和b預設值進去 return a + b; } console.log(sum()); //()如果ab沒有放入值就會啟用預設值 ans:8 console.log(sum(2,3)); // 如果有放入值,就不會啟用預設值 ans:5 ``` ### <font color=#831437>解構</font> ```=JavaScript const people={ danny:{ name:'danny123', like:'布丁', price:40 }, rick:{ name:'rick456', like:'泡芙', price:60 }, gowork(){ console.log('去上班'); } }; //想取出danny //原本寫法: let person=people.danny; //解構寫法: 把想抓的值放在{} = 該物件 let {danny}=people; //想取出gowork這個方法 //原本寫法: let gowork123=people.gowork(); //解構寫法: 把要的方法放在{} = 該物件 let {gowork} = people; ``` ### <font color=#831437>? --- 避免物件值不存在</font> ```=JavaScript const people={ danny:{ name:'danny123', like:'布丁', price:40 }, rick:{ name:'rick456', like:'泡芙', price:60 }, }; //想要抓people裡面的jay屬性 //但是people沒有jay,所以執行下一行的時候會報錯,程式碼就不會繼續往下執行 console.log(people.jay.name); //使用 ? 這個語法時並不會報錯,而是顯示這個值是 undefined console.log(people?.jay?.name); ```