
const toy = {
type: "bear",
price: 15000,
};
const blueToy = {
...toy,
color: "blue",
};
const yellowToy = {
...toy,
color: "yellow",
};
console.log(blueToy); // { type: 'bear', price: 15000, color: 'blue' }
console.log(yellowToy); // { type: 'bear', price: 15000, color: 'yellow' }
const color1 = ["red", "orange", "yellow"];
const color2 = ["blue", "navy", "purple"];
const rainbow = [...color1, 'green', ...color2];
console.log(rainbow); // [ 'red', 'orange', 'yellow', 'green', 'blue', 'navy', 'purple' ]
const print = (a, b, c, d, e, f) => {
console.log(a, b, c, d, e, f);
};
const numbers = [1, 2, 3, 4, 5, 6];
print(...numbers); // 1 2 3 4 5 6
const blueToy = {
type: "bear",
price: 15000,
color: "blue",
};
// 구조분해할당을 통해 프로퍼티의 값을 변수들에 할당
const {type, price, color} = blueToy;
console.log(type); // bear
console.log(price); // 15000
console.log(color); //blue
const {type, ...rest} = blueToy;
console.log(type); // bear
console.log(rest); // { price: 15000, color: 'blue' }
rest문법은 spread와는 다르게 순서에 상관없이 여러 번 작성할 수 없고 항상 맨 마지막에 작성해야 한다.
// TypeError
const {...rest, type} = blueToy; // ❌
const color = ["red", "orange", "yellow", "green"];
const [c1, c2, ...rest] = color;
console.log(c1, c2); // red orange
console.log(rest); // [ 'yellow', 'green' ]
const print = (a, b, ...rest) => {
console.log(a, b, rest);
};
print(1, 2, 3, 4, 5, 6); // 1 2 [ 3, 4, 5, 6 ]
const print = (...rest) => {
console.log(rest);
};
const numbers = [1, 2, 3, 4, 5, 6];
print(...numbers); // [ 1, 2, 3, 4, 5, 6 ]