解构赋值语法是一种 Javascript 表达式
解构数组:
// 解构数组:
// 1.如果当前对应下标没值则是undefined
// 2.如果解构时设置了默认值,例如 c=55和d=66, c对应下标有值时则使用该值,d对应的没值时使用默认值66; 默认值可以是表达式
// 3.每个解构属性都有一个默认值,当没有值时是undefined
let [a, b, c = 55, d = 66-56, e] = [1, 3, null];
console.log(a, b, c, d, e);// 4. ...xx结束解构模式,该语法只能放在末尾!
let [a2, ...x2] = [1, 3, 4, 5, 6];
console.log(a2, x2);// 1, [3,4,5,6]// 5. 交换变量
let a3 = 1;
let b3 = 7;
[a3, b3] = [b3, a3];
console.log(a3, b3);// 6.忽略某些返回值
let [a4, , c4] = [1, 2, 3];
console.log(a4, c4); // 1, 3
解构对象:
// 解构对象:
// 1. 基本赋值 let {id} = user
// 2. 赋值给新的变量名 let {tName: newAttr} = user
// 3. 提供默认值 let {sb = 'sb'} = user; 可以组合使用> tName: newAttr='sb';
// 4. 如果没该属性,则默认值为 undefined
// 5. 解构基本类型:对象解构几乎等同于属性访问。const { a, toFixed } = 1; 等同 (1).a 和 (1).toFixed
// 6. 解构对象时会查找原型链 >> 解构对象时,该对象没该属性则会查找原型链
const user = {id: 42,isVerified: true,tName: "替换属性名",
};
user.__proto__.lian = "芙莉莲";
const {id,isVerified,moren = 6,no,tName: newAttr = "sb",lian,
} = user;
console.log(id, isVerified, moren, no, newAttr, lian);
以上就是个人认为常用的和必须要理解的内容。更多的解构语法有兴趣自己看文档了;
而且解构语法直接的特性基本都是能一起使用的!思路不要限制死了!
例如 xx: newXX = '默认值'