Paradise_追逐者的es6(二) 1.es6三種聲明方式 2.變數的解構賦值 3.擴展運算符和rest運算符 ...
1.es6三種聲明方式:
a.var 全局聲明
b.let 局部變數聲明
c.const 常量聲明
2.變數的解構賦值
a.數組的解構賦值
等號左邊與右邊形式統一 let [a,[b,c],d]=[1,[2,3],4];
可以使用預設值 let [a,b="paradise"]=['追逐者'] console.log(a+b);
ps:undefined表示沒有值 null有值值為null
b.對象的解構賦值
1 let {head,foot} = {head:'paradise',foot:'追逐者'}; 2 console.log(head+foot);
變數必須與變數名相同
c.如果變數之前已經定義,應用圓括弧
1 let foot; 2 ({foo} ={foot:'追逐者'}); 3 console.log(foot);
d.字元串解構(和數組類似)
1 const [a,b,c,d,e,f,g,h]="Paradise"; 2 console.log(a); 3 console.log(b); 4 console.log(c); 5 console.log(d); 6 console.log(e); 7 console.log(f); 8 console.log(g); 9 console.log(h);
3.擴展運算符和rest運算符
解決參數和對象數組未知情況下編程
a.對象擴展運算符(...)
function paradise(...aaa){
console.log(aaa[0]);
console.log(aaa[1]);
console.log(aaa[2]);
console.log(aaa[3]);
}
paradise(1,2,3,4);
這樣可以傳入n個輸入,而不報錯
let arr1=['aaa','bbb','ccc'];
//let arr2=arr1;
let arr2=[...arr1];
console.log(arr2);
arr2.push('ddd');
console.log(arr2);
console.log(arr1);
解決引用問題(直接引用時,改變arr2的同時,arr1也會改變)
b.rest運算符(...)
1 function paradise(first,...arg){ 2 for(let val of arg){ 3 console.log(val); 4 } 5 } 6 7 paradise(0,1,2,3,4,5,6,7); //輸出7