解构

91 阅读1分钟

数组解构

数组解构需要使用[]包含用于接收数据的变量
let arr = [123, 2, 4, 325, 346]
// 原先写法:
// let a = arr[0]
// let b = arr[1]
// let c = arr[2]
// let [解构时定义的用于接收数据的变量名称] = 源数据结构
let [a, b, c] = arr
console.log(a, b, c)

对象结构

let obj = {
  say() {
    console.log('say')
  },
  hi() {
    console.log('hi')
  },
  hello() {
    console.log('hello')
  }
}
// 原先写法:
// let hi = obj.hi
// let hello = obj.hello
// let{解构时定义的用于接收数据的变量名称} = 源数据结构
let {hi,hello} = boj
​
hi()
hello()

注:如果结构时定义的名称不对应,则返回undefined

解构-细节

情况一:解构属性

let name = 'rose'let obj = {
    name:'jack',
    age:20,
    computer: {
        brand:'dell',
        price:6000
    }
}
// 这时我想解构对象里的name,可是外面也有一个name的命名,解构会不成功,报错,因为重复变量
// 通过 :来对对象里的name进行重命名即可
let { name:aa } = obj
console.log(aa)

情况二:解构方法里的属性

let name = 'rose'let obj = {
    name:'jack',
    age:20,
    computer: {
        brand:'dell',
        price:6000
    }
}
// 这时我想对price进行解构 方法:{属性} = 当前数组
// 通过 :{} 可以实现深层解构
let {
    computer: {price} 
} = obj
console.log(price)

小案例

// 请过解构,来交换他们之间的数据
let a = 10
let b = 20;
[b,a] = [a,b]
console.log(a,b)