// spread 연산자
// -> 객체나 배열에 저장된 여러개의 값을 개별로 흩뿌려주는 역할
let arr1 = [1, 2, 3];
let arr2 = [4, ...arr1, 5, 6];
console.log(arr2) // 4, 1, 2, 3, 5, 6
let obj1 = {
a: 1,
b: 2,
};
let obj2 = {
...obj1,
c: 3,
d: 4,
};
console.log(obj2) // a: 1, b:2, c: 3, d: 4
function funcA (p1, p2, p3) {
console.log(p1, p2, p3)
}
funcA(...arr1); // 3개의 매개변수가 들어가게 됨
// 2. Rest 매개 변수
// -> 나머지 매개변수
function funcB (one, ...rest) { // 첫번째로 전달되는 인수는 one에 저장되고 이후의 값들은 rest에 저장된다. one, two, ...rest 이렇게 OK
// 그러나 REST 이후에 추가적인 매개변수를 저장할 수 는 없다. 반드시 마지막에 오도록 설정해야한다.
console.log(rest); // 매개변수로 모든 값들이 배열에 한방에 저장된다. [1,2,3], 0:1, 1:2, 2:3
} // spread와 rest는 엄연히 다르다.
funcB(...arr1);