解构赋值

59 阅读2分钟

一、数组的解构赋值

1.1基础用法

const arr =['蛋同学','鸡同学','鸭同学','鹅同学','牛同学','羊同学'];
const[numl,num2,num3]= arr;
console.log(`第-名:${num1},第二名:${num2},第三名:${num3}`);

1.2进阶:取到特定位置的数组元素

const arr =['蛋同学','鸡同学','鸭同学','鹅同学','牛同学','羊同学'];
const[,,num3,,num5]= arr;
console.log('第三名:${num3},第五名:${num5});

1.3可以对已经存在的变量进行改写

const arr =['蛋同学','鸡同学','鸭同学','鹅同学','牛同学','羊同学'];
let num3 ='狗同学';
let num5='猪同学';
const[,,num3,num5]= arr;
console.log('第三名:${num3},第五名:${num5});

1.4数组的某个位置不存在,直接赋默认值

const[,,num3,num5,num7 = '鹿同学']= arr;
console.log('第三名:${num3},第五名:${num5},第七名:${num7});

1.5进阶:中括号改花括号

const arr =['蛋同学','鸡同学','鸭同学','鹅同学','牛同学','羊同学'];
//以属性的方式来指定元素的序号
const {2: num3, 4:num5} = arr;
console.log('第三名:${num3},第五名:${num5});

1.6解构赋值自动判空

const arr =['蛋同学','鸡同学','鸭同学','鹅同学','牛同学','羊同学'];
//数组不为空就会直接替换默认值
const[notExist ='数组为空']= arr;
console.log(notExist);

1.7 对剩余元素进行操作

const arr =['蛋同学','鸡同学','鸭同学','鹅同学','牛同学','羊同学'];
//数组不为空就会直接替换默认值
const[num1,num2,num3,...restNum]= arr;
console.log`第一名:${num1},${num2},${num3},不及格的${restNum}`);

1.8嵌套数组解构

const arr =['蛋同学',['鸡同学','鸭同学'],['鹅同学','牛同学','羊同学']];
const[num1,[,num2],[,,num3]]= arr;
console.log`第1组第1个元素:${num1},第2组第2个元素:${num2},${num3},第3组第3个元素${restNum}`);

二、对象的结构赋值

2.1基础用法

ps:对象是根据属性名进行赋值的

const obj={
id:'1',
name_:蛋老师',
age:18,
gender:'男',
email:'709394@qq. com',
}
const id = obj.id;
const name_ = obj.name_;
const age = obj.age;
const gender = obj.gender;
const email = obj.email;
console.log(id,name_,age,gender,email);

//根据属性名直接取
const {name_,email} = obj;
console.log(age,email);

2.2改名

const obj={
id:'1',
name_:蛋老师',
age:18,
gender:'男',
email:'709394@qq. com',
}

const {name_:eggName,email:eggEmail } = obj;
console.log(eggName,eggEmail);

2.3对剩余属性进行操作

const obj={
id:'1',
name_:蛋老师',
age:18,
gender:'男',
email:'709394@qq. com',
}

const {id,age,...resobj} = obj;
console.log(resobj);

2.4对于已经声明的变量也可以用解构赋值的方法覆盖原来的值

const obj={
id:'1',
name_:蛋老师',
age:18,
gender:'男',
email:'709394@qq. com',
}

let gender:'女';
({gender} = obj);
console.log(gender);

其他高级用法见到再去查