ES6新特性——解构赋值
基础用法
- 解构赋值:解构的目标是数组和对象,在表达式的左边定义了从原变量中区出什么变量。
- 解构数组
const arr = ['E', 'S', '6', '新', '特', '性']
let [a, b, c] = arr
console.log(a, b, c)
let d, e, f
[, , , d, e, f] = arr
console.log(d, e, f)
let [a, b, c, ...d] = arr
console.log(a, b, c, d)
function fun () {
return [1, 2, 3]
}
let [a, b] = fun()
console.log(a, b)
let [a, d, c = 0] = [1, 2]
console.log(c)
let {a, b} = { a: 1, b: 2}
console.log(a, b)
let a, b
({a, b} = { a: 1, b: 2});
console.log(a, b)
let {a, b, c = 0} = { a: 1, b: 2}
console.log(c)
let { a: aa, b: bb} = { a: 1, b: 2}
console.log(aa, bb)
进阶用法
let obj = {
'a': 1,
'b': {
'b1': 11,
'b2': 22
},
'c': [ 'c1', 'c2']
}
let {
a,
'b': {
b1,
b2,
},
'c': [c1,c2]
} = obj
const arr = [{ name: 'Jack', age: 18}, { name: 'Pink', age: 20}]
for (let { age } of arr) {
console.log(age)
}
function Stu ({ age = 18, name = 'Jack'}) {
console.log(name, age)
}
Stu({})
Stu({age:20})
Stu()
function Stu1 ({ age = 18, name = 'Jack'} = {}) {
console.log(name, age)
}
Stu1({})
Stu1({age:20})
Stu1()
const obj = {
name: 'Pink',
data: {
id: 111234,
age: 22,
denger: '男'
}
}
function Stu1 ({ data: { id } }) {
console.log(id)
}
Stu1(obj)