//一.变量的解构赋值-快速的给变量赋值
//1.数组的解构赋值。
// let arr = ['zhangsna', 'lisi', 'wangwu'];
// let [a, b, c] = arr;
// console.log(a, b, c);//zhangsna lisi wangwu
// let [a, b, [c, d, [e, f, g]]] = [1, 2, [3, 4, [5, 6, 7]]];
// console.log(a, b, c, d, e, f, g);//1 2 3 4 5 6 7
// let [a, b, c, d] = [1, 2, 3];
// console.log(a, b, c, d);//1 2 3 undefined ,加入实参多于形参那就无影响
// let [a, b, c, d] = [1, 2, 3, 4, 5];
// console.log(a, b, c, d);//1 2 3 4 5 后面的实参多了对结果没影响,只取前面4个
// const fn = function(arr) {
// arr.sort(function(a, b) {
// return a - b;//做从小打大排序,返回值给fn函数
// });
// return [arr[0], arr[arr.length - 1], arr.length];
// }
// // console.log(fn([12, 3, 455, 67, 8, 9, 1]));
// let [min, max, len] = fn([12, 3, 455, 67, 8, 9, 1]);
// console.log(min, max, len); //1 455 7
//2.对象的结构赋值,地址不会赋过去
//对象是无序的。
// var obj = {
// a: 1,
// b: 2,
// c: 3
// };
// var {
// a,
// b,
// c
// } = obj;
// console.log(a, b, c); //1 2 3
//修改变量的名称
var {
name1: xingming, //得到值的是xingming,name1没有值
age,
sex
} = {
name1: 'zhangsan',
age: 100,
sex: '男'
};
console.log(xingming, age, sex); //zhangsan 100 男
var {
name1: xingming, //如果属性名有属性值的变量,那么后面的值应该是给属性值变量,而不是属性名,但如果属性名是全局变量的话,那后面写哪个都可以,因为全局变量里有属性值的名称
age,
sex
} = {
name1: 'zhangsan',
age: 100,
sex: '男'
};
console.log(name1, age, sex); //undefined 100 "男"
var {
name1, //没写属性值的变量名称,那么值就给属性名就行
age,
sex
} = {
name1: 'zhangsan',
age: 100,
sex: '男'
};
console.log(name1, age, sex); //zhangsan 100 男
// var obj = {
// name: 'zhangsan',
// age: 100,
// sex: '男'
// };
// var {
// age
// } = obj;
// console.log(age); //可以就取obj内的其中一个属性值,值会一一对应,与顺序无关,只看名称是不是对应
个人见解,如有遗漏,概不负责QAQ