概述
解構(gòu)賦值是對賦值運算符的擴展。
他是一種針對數(shù)組或者對象進行模式匹配,然后對其中的變量進行賦值碍讨。
在代碼書寫上簡潔且易讀,語義更加清晰明了蒙秒;也方便了復(fù)雜對象中數(shù)據(jù)字段獲取勃黍。
解構(gòu)賦值:允許將相同結(jié)構(gòu)的值賦值給變量(模式匹配,=左右兩側(cè)模式相同才能解構(gòu)晕讲,否則解構(gòu)失敗覆获,變量值為undefined)
1. 數(shù)組解構(gòu)賦值: [value,value,value,...]
有數(shù)組:[1,2,3,4,5],需要定義變量a,b,c,d,e來接收數(shù)組元素的值益兄。
let arr = [1, 2, 3, 4, 5];
// ES5
// let a = arr[0],
// b = arr[1],
// c = arr[2],
// d = arr[3],
// e = arr[4];
// ES6 數(shù)組解構(gòu)
let [f,b,e,d,c] = arr;
console.log(f,b,c,d,e);
// let [a,b,[c,d],e] = [1,2,[3],4,5];
// console.log(a,b,c,d,e);
2. 對象解構(gòu): {key:value,key:value,...}
// 對象的解構(gòu)
const zhao = {
name: '趙本山',
age: '不詳',
xiaopin: function() {
console.log("我可以演小品");
}
};
// let{name,age,xiaopin}=zhao;
// console.log(name);
// console.log(age);
// console.log(xiaopin);
// xiaopin();
// let{xiaopin,name,age}=zhao;
console.log(zhao.name, zhao.age);
zhao.xiaopin()
// xiaopin();
// console.log(name);
// 用途:
{
// 1. 快速交換變量的值
let arr = [33,7,19,99,0,5,13];
for (var i = 0; i < arr.length - 1; i++) {
for (var j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// var tmp = arr[j];
// arr[j] = arr[j + 1];
// arr[j + 1] = tmp;
[arr[j+1],arr[j]] = [arr[j],arr[j+1]];
}
}
}
console.log(arr);
}