解构赋值
数组解构
基本使用
javascript
let arr = ['张三', '李四', '王五']
let [a, b, c] = arr
console.log(a,b,c) // 张三 李四 王五
1
2
3
2
3
变量多,参数少
javascript
let arr = ['张三', '李四', '王五']
// 当参数少,则会赋值于 undefined
let [a, b, c, d, e] = arr
console.log(a, b, c, d, e) // 张三 李四 王五 undefined undefined
1
2
3
4
2
3
4
javascript
let arr = ['张三', '李四', '王五']
// 当赋予了默认值之后,如果参数能对应上,则赋值,否则使用默认值
let [a, b, c = 'name', d = 'name', e = 'name'] = arr
console.log(a, b, c, d, e) // 张三 李四 王五 name name
1
2
3
4
2
3
4
变量少,参数多
javascript
let arr = ['张三', '李四', '王五', '王八']
let [a, b] = arr
console.log(a, b) // 张三 李四
1
2
3
2
3
javascript
let arr = ['张三', '李四', '王五', '王八']
let [a, b, ...c] = arr
console.log(a, b,c) // 张三 李四 ['王五', '王八']
1
2
3
2
3
快速交换变量值
javascript
let a = 10
let b = 20
console.log(a, b) // 10 20
;[a, b] = [b, a]
console.log(a, b) // 20 10
1
2
3
4
5
2
3
4
5
函数返回数组解构
javascript
const fn = () =>{
return ['张三', '李四', '王五', '王八']
}
let [a,b] = fn()
console.log(a,b) // 张三 李四
1
2
3
4
5
6
2
3
4
5
6
对象解构
基本使用
javascript
const obj = {name: '张三', age: 15, gender: true}
let {name, age} = obj
console.log(name,age) // 张三 15
1
2
3
2
3
变量多,参数少
javascript
const fn = () => {
return {
name: "张三",
age: 15
}
}
// 定义默认参数
let {name, age, gender = true} = fn()
console.log(name, age, gender) // 张三 15 true
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
变量别名
javascript
const fn = () => {
return {
name: "张三",
age: 15
}
}
let {name:n, age:a, gender:g = true} = fn()
console.log(n, a, g) // 张三 15 true
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
函数返回数组解构
javascript
const fn = () => {
return {
name: "张三",
age: 15
}
}
let {name, age} = fn()
console.log(name, age) // 张三 15
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10