▪︎ 구조 분해 할당

▫︎ 배열의 구조 분해 할당

const arr1 = [10, 20, 30, 40, 50];
const [ten, twenty, thirty, fourty, fifty] = arr1;
const arr2 = ["치킨", "피자"];
const [a, b, c = "콜라"] = arr2;

▫︎ 객체의 구조 분해 할당

const obj = {
    name: "name1",
    age: 27,
    city: "Seoul",
};

const { name, age, city, hobby = "독서" } = obj;
console.log("객체 구조분해할당", name, age, city, hobby);
// 객체 구조분해할당 name1 27 Seoul 독서

▪︎ 전개연산자 ... (Spread Syntax)

▫︎ 배열의 전개

const arr3 = [1, 2, 3];
const arr4 = [4, 5, 6];

const spread = [...arr3, ...arr4];
console.log("spread", spread);
// spread (6) [1, 2, 3, 4, 5, 6]

▫︎ 문자열의 전개

const spread2 = [..."HELLO"];
console.log("spread2", spread2);
// spread2 (5) ['H', 'E', 'L', 'L', 'O']

▫︎ 객체의 전개

const chip = {
    base: "포카칩",
    company: "오리온",
};

const potatoChip = {
    ...chip,
    flavor: "Onion",
};

console.log("객체 전개", potatoChip);
// 객체 전개 {base: '포카칩', company: '오리온', flavor: 'Onion'}

▫︎ rest 파라미터

const values = ["가", "나", "다", "라", "미"];

function myFunc(a, b, c, ...rest) {
    console.log(a, b, c);
    console.log("rest", rest);
}

myFunc(...values);
// 가 나 다
// rest (2) ['라', '미']