구조분해할당 구문은 배열이나 객체의 속성을 분해해서 그 값을 변수에 담을 수 있게 하는 표현식
let [ x, y ] = [1, 2]
console.log(x) // 1
console.log(y) // 2
let users = ['수리', '레오', '후추']
let [user1, user2, user3] = users
console.log(user1) // '수리'
console.log(user2) // '레오'
console.log(user3) // '후추'
let [a,b,c] = [1,2] // c는 undefined
let [a=3, b=4, c=5] =[1,2]
// 이렇게 기본값을 넣어두면 undefined일 경우에 기본값 반환
a와 b의 값을 바꾸려면 temp라는 변수가 하나 더 필요한데
구조분해할당은 [a, b] = [b, a]
로 가능함
let user = {name:'Suri', age:4}
let {name, age} = user;
// 위의 코드는 아래와 같다. 순서는 상관없다. 변수의 이름도 바꿀 수 있다.
let name = user.name
let age = user.age
console.log(name) // 'Suri'
console.log(age) // 4
let {name:userName, age:userAge} = user
console.log(userName) // 'Suri'
console.log(userAge) // 4
let user = {name:'Suri', age:4}
let {name, age, gender} = user
// gender는 없으므로 undefined
let {name, age, gender='female'} = user
// gender가 undefined일때 female할당