배열이나 객체의 속성을 분해해서 그 값을 변수에 담을 수 있게 해주는 문법
// 배열
let [value1, value2] = [1, "new"];
console.log(value1); // 1
console.log(value2); // "new"
let arr = ["value1", "value2", "value3"];
let [a,b,c] = arr;
console.log(a,b,c) // value1 value2 value3
// let [a,b,c] = arr; 은 아래와 동일!
// let a = arr[0];
// let b = arr[1];
// let c = arr[2];
let [a,b,c,d] = arr
console.log(d) // undefined
// 할당된 값이 있으면 할당된 값 사용, 없으면 기본값(초기값) 사용
let [a,b,c,d = 4] = arr
console.log(d) // 4
// 객체
let user = {name: "abc", age: 30};
let {name, age} = user;
console.log(name, age) // abc 30
// let name = user.name; ⬅ String
// let age = user.age; ⬅ Number
// 새로운 이름으로 할당 (기존 이름은 못씀)
let {name: newName, age: newAge} = user;
console.log(name, age) // ReferenceError: name is not defined
console.log(newName, newAge) //abc 30
let {name, age, birthDay} = user;
console.log(birthDay) // undefined
// 할당된 값이 있으면 할당된 값 사용, 없으면 기본값(초기값) 사용
let {name, age, birthDay = "today"} = user;
console.log(birthDay) // today