让左侧出现和右侧值相同的结构,以此快速获取到我们需要的内容
真实项目中最常用的就是对对数组和对象的结构赋值
1.数组的结构赋值
// let ary = [10, 20, 30, 40, 50];// let n = ary[0], m = ary[1], x = ary.slice(2);// console.log(n, m, x);// let [n, m, ...x] = ary;// ...x扩展运算符,把剩下的内容存储到x中,x是个数组,但是它只能出现在最后// console.log(n, m, x); // 10 ,20, [30,40,50]// let [n, , m, , , x] = ary; //x 为第6项// console.log(n, m, x); //10, 30,undefined 如果没有这一项,我们可以基于等号赋值默认值//多维数组结构赋值let ary = [10, [20, 30, [40, 50]]];let [n, [, , [, m]]] = ary;console.log(n, m); // 10 50
2.对象的结构赋值
let obj = {name: "obj",age: 10,sex: 'boy',frineds: ['bob', 'mike', 'ace', 'jack', 'sery']}// let name = obj.name;// let age = obj.age;// let {// name,// sex// } = obj; // 要求创建的变量和属性名一致// console.log(name, sex);// let {// age: nianling // 冒号相当于获取的结果设置了一个别名(变量名):创建了一个叫做nianling的变量存储于obj.age的值// } = obj;// console.log(nianling); // 10// let { height = '180cm' } = obj// console.log(height); //180cmlet {name,frineds: [firstFriend]} = obj;console.log(name, firstFriend); // obj,bob
