数组中的解构赋值
// 用逗号进行占位
var [a,,,,,,,c]=[1,2,3,4,5,6,7,8];
console.log(a,c);
// 结构左右一一对应
var [,[,a]]=[1,[2,3],4];
console.log(a);
//如果右边没有对应的值那项,获取的时候就是undefined
var [a,b,c]=[1,2];
console.log(c); //undefined
// 默认值:如果那个值绝对等于undefined,那就走默认值
var [a,b,c=10]=[1,2,undefined];
console.log(c);
对象中的解构赋值
// 对象的解构赋值跟属性名有关(跟顺序是无关的)
let {age,name}={name:"li",age:10};
console.log(name,age);
// 如果没有对应的项 值就是undefined
let {age,name}={name:"li"};
console.log(name,age);
// 用等号可以设置默认值,只要是绝对等于undefined 就走默认值
let {age=100,name}={name:"li",age:"200"};
console.log(name,age);
//可以起别名
let {age:a,name}={name:"li",age:10};
console.log(a);
函数参数的解构赋值
function fn (x,y){
console.log(a);
}
var ary=[1,2];
var a=ary[0];
var b=ary[1];
fn(a,b)
function fn ([x,y]){
console.log(x,y)
}
var ary=[1,2];
fn(ary)
// 设置参数的默认值
function fn (x=20,y=10){
console.log(x,y)
}
fn()
function fn ({age:a}){
console.log(a)
}
fn({name:"li",age:10})
ES剩余运算符
// 剩余运算符:把剩余的项装到一个数组中
function fn(x,y,...arg){
console.log(arg);
}
var obj={name:"li"};
var obj2={age:10,"name":"da"};
var item={...obj,...obj2};
评论区