// const arr= [100,60,80]
// console.log(arr[0])//最大值
// console.log(arr[1])//最小值
// console.log(arr[2])//平均值
// 这样写很麻烦,因此我们通常会这么写,声明一个常量来进行赋值便于我们使用
// const arr= [100,60,80]
// const max = arr[0]
// const min = arr[1]
// const avg = arr[2]
// console.log(max)
// console.log(min)
// console.log(avg)
// 但是这么写也不简洁,因为要写很多行代码,因此我们引入了解构赋值。
// const [max,min,avg]=[100,60,80]
// console.log(max)
// console.log(min)
// console.log(avg)
// 上面这种为:数组解构:将数组的 单元值 快速批量赋值给一系列变量的简洁语法
// 语法:赋值运算符 = 左侧的[ ]用于批量声明变量,右侧数组的单元值赋值给左侧的变量;变量的顺序对应数组单元值的位置,依次进行赋值操作
// 典型运用:交换两个变量
// let a = 1 //不能用const,因为无法再次赋值
// let b = 2; //注意分号,如果不加分号,系统会默认与上一行的代码相连!!立即执行函数也是!特殊情况:上面没有代码就不用加。
// [b, a] = [a, b]
// console.log(a, b)
// 练习:const pc = ['海尔','联想','小米','方正']
// 解构为变量:hr lx mi fz
// const pc = ['海尔', '联想', '小米', '方正']
// const [hr, lx, mi, fz] = pc
// console.log(hr, lx, mi, fz)
// 练习:请将最大值和最小值函数返回值解构max和min两个变量
// function getValue() {
// return [100, 60]
// }
// const [max, min] = getValue()
// console.log(max, min)'
// 数组解构中的各种情况:
// 1.变量多,单元值少:多余的为undefined
// 2.变量少,单元值多: 利用剩余参数:const [a, b, ...c] = [1, 2, 3, 4, 5]
// 3.防止undefined传递:如同形参一般设置默认参数 const [a = 0, b = 0] = []
// 4.按需导入,忽略某些返回值: const [a, b, , d] = [1, 2, 3, 4]
// 5.支持多维数组的解构:
// 多维数组的概念: [1, 2, [3, 4]] //[3,4]为二维数组
// 如何解构?
// const [a, b, [c, d]] = [1, 2, [3, 4]]
// 对象解构:将对象属性和方法快速批量赋值给一系列变量的简洁语法
// 基本语法:1.赋值运算符 = 左侧的{ }用于批量声明变量,右侧对象的属性值将被赋值给左侧的变量
// 2.对象属性的值将被赋值给与属性名相同的变量
// 3.注意解构的变量名不要和外面的变量名相冲突,否则报错
// 4.对象中找不到与变量名一致的属性时,变量值为undefined
// const obj = {
// uname: '94',
// age: 18
// }
// const { uname, age } = { uname: '94', age: 18 } //等价于const uname = obj.uname
// 如果外部有相同变量名的情况呢?如uname重复
// 可以重新改名,旧变量名:新变量名
// const { uname: username, age } = { uname: '94', age: 18 }
// 数组对象解构
// const pig = [
// {
// name: '94',
// age: 18
// }
// ]
// const [{ name, age }] = pig
// console.log(name, age)
// 例题:完成对象解构赋值
// 需求1:对象:const obj ={name:'94',age:6}
// 解构为变量:完成对象解构,并以此打印出值
// const obj = {
// name: '94',
// age: 6
// }
// const { name, age } = { name: '94', age: 6} //= obj
// console.log(name, age)
// 需求2:请将obj对象中的name,通过对象解构的形式改为uname,并打印输出
// const obj = {
// name: '94',
// age: 6
// }
// const { name: uname } = obj
// console.log(uname)
// 需求3:请将数组对象,完成商品名和价格的解构
// const goods = [
// {
// goodsName: '94',
// price: 1998
// }
// ]
// const [{ goodsName, price }] = goods
// console.log(goodsName, price)
// 对象内嵌套对象的情况
// const obj = {
// name: '94',
// friends: {
// f1: '穹影',
// f2: 'vista喵'
// },
// age: 18
// }
// const { name, friends: { f1, f2 } } = obj
// console.log(f1, f2)
console