解構運算符
我的理解:就是將整個數組或者對象 傳給一個載體,或對象,或函數,那麼只須要定義接收者就好了,載體的接收者會自動爲期賦值。
解構運算符---用來賦值數組
//數組類型的 let arr = ['hello', 1, 2]; let [a, b, c] = arr; console.log(a);//hello console.log(b);//1 console.log(c);//2 //對象類型的 let obj = { name: 'MrD', age: 26, son: { sonname: '大熊', sonage: 1 } }; let {name, sex, age, son} = obj; console.log(name ,sex ,age); //MrD console.log(son); // { sonname: '大熊', sonage: 1 }
解構運算符---用來傳參函數
//數組類型的 let arr = ['hello', 1, 2]; //方法 fn1([a, b, c]) { console.log(a); console.log(b); console.log(c); } //對象類型的 let obj = { name: 'MrD', age: 26, son: { sonname: '大熊', sonage: 1 } }; //方法 fn2({a, b, c}) { console.log(a); console.log(b); console.log(c); }
擴展運算符
擴展運算符用三個點號表示,功能是把數組(或類數組對象)展開成一系列用逗號隔開的值spa
//方法 fn([a, b, c]) { console.log(a); console.log(b); console.log(c); } //數組類型的 let arr = ['hello', 1, 2]; fn(...arr)
rest運算符
rest運算符也是三個點號,不過其功能與擴展運算符剛好相反,把逗號隔開的值序列組合成一個數組rest
//方法 fn(...args) { //主要用於不定參數,因此ES6開始能夠再也不使用arguments對象 for (let el of args) { console.log(el); } } fn('hello', 1, 2)