1. 数组的解构 (按顺序解构)
把数组里的元素按顺序赋值给四个变量:
●如果解构的变量少于数组元素,那么就只解构前几个元素。
●如果解构的变量多于数组元素,那么多余的变量就是undefined。
var arr = [4, 3, 9, 7]
var [a, b, c, d, e] = arr
console.log(a) //打印4
console.log(b) //打印3
console.log(c) //打印9
console.log(d) //打印7
console.log(e) //打印undefined
2. 对象的解构 (按属性名解构)
对象的解构是按照属性名来解构的:
声明的变量要对应对象里的属性名,才能拿到属性值;
如果去解构一个对象里不存在的属性,得到undefined。
// 对象是无序的,没有length属性
var obj = {
username: 'lisi',
age: 20,
gender: 'male',
say: function () {
console.log(this.age)
}
}
var { gender, age, aaa, say } = obj // var age = obj.age
console.log(age) // 打印20
console.log(gender) // 打印male
console.log(aaa) // 打印undefined
say解构出来就是一个全局函数了,可以直接调用,相当于var say = obj.say
say()
3. 解构赋值的逆用:简写对象定义,直接将声明赋值过的标量写在对象中,无需键值对的形式。
var age = 20
var username = 'lisi'
var gender = 'male'
// ES6里面可以简写
var obj = {
age,
username,
gender
}
console.log(obj)