解构赋值

解构赋值

一、对象解构

1. 语法:

1
2
3
4
5
6
7
const obj = {
name: 'js',
age: '18',
desc: 'hoho'
}
let { name, age, desc } = obj
console.log(name, age, desc) // 'js', '18', 'hoho'

2. 改变变量名

1
2
let { name: n, age: a, desc: d } = obj
console.log(n, a, d) // 'js', '18', 'hoho'

3. 可以给解构用的变量指定默认值

1
2
3
4
5
let { name, age, desc, fn } = obj

console.log(fn);// undefined,没有值可赋

let { name, age, desc, fn = 'lalala' } = obj // 有变量就会赋值,没有变量就是'lalala'

二、数组解构

1
2
3
4
5
6
7
const arr = [1, 2, 3]

// 不要的内容可以占个位,后面直接用逗号隔开

const [, item2, item3] = arr

console.log(item2, item3) // 2, 3

三、函数参数的解构

1
2
3
4
5
6
7
8
9
10
11
12
13
const obj = {
name: 'ss',
age: 19,
}
const money = 10000
function fn(obj, money) {
const { name, age } = obj
console.log(name, age, money);
}
// 也可以在传参的时候解构
function fn2({ name: n, age }, money) {
console.log(n, age, money);
}