将 属性/值 从 对象/数组 中取出赋值给其他变量
语法:要从原变量中取出的变量 = 原变量
var [ one, two, three ] = [1, 2, 3]
console.log(one, two, three) // 1 2 3
const c1 = {
name: 'Tom',
gender: '男',
age: 20
}
var {name, gender, age} = c1
console.log(name, gender, age) // Tom 男 20
const c2 = {
name: 'Tom',
course: [
{
courseName: 'math',
score: 90
},
{
courseName: 'English',
score: 80
}
]
}
var {
name: name, // 原变量:新变量
course: [
{ score: mathScore },
{ score: EngScore }
]
} = c2
console.log(name, mathScore, EngScore) //Tom 90 80
var x = 1
var y = 2
var [x, y] = [y, x]
console.log(x, y) // 2 1
var [a, b] = [1, 2, 3, 4]
console.log(a, b) // 1 2
var [name, gender] = ['Tom', '男', 20]
console.log(name, gender) // Tom 男
var [a, ...b] = [1, 2, 3, 4]
console.log(b) // [ 2, 3, 4 ]
function fun1(x, y) { console.log(x, y) }
var arr1 = [1, 2]
fun1(...arr1) // 1 2
var arr2 = [3, 4]
var newArr1 = [3, ...arr2] // 数组构造
var newArr2 = [...arr2] // 数组拷贝
var newArr3 = [...arr1, ...arr2] // 数组连接
console.log(newArr1) // [ 3, 3, 4 ]
console.log(newArr2) // [ 3, 4 ]
console.log(newArr3) // [ 1, 2, 3, 4 ]
var obj1 = { name: 'Tom', gender: '男'}
var obj2 = {age: 20}
var obj3 = {...obj1}
var obj4 = {...obj1, ...obj2}
console.log(obj3) // { name: 'Tom', gender: '男' }
console.log(obj4) // { name: 'Tom', gender: '男', age: 20 }