function x(a, ...rest) {
console.log(Array.isArray(rest)); // true
console.log(a, rest); // 1, [2,3,4,5]
}
x(1, 2, 3, 4, 5);
function x1() {
console.log(arguments); // {0:"a" , 1:"b" , 2:"c" , 3:"d" , 4:"e"}
}
x1('a', 'b', 'c', 'd', 'e');
배열 또는 이터러블(iterable)을 "개별" 요소로 분리한다.
rest는 마지막에 써야 하지만, spread는 어디든 써도 상관없음.
사용1. 객체에도 spread 쓸 수 있음.
const obj = {
a: 'ㄱ',
b: 'ㄴ',
c: 'ㄷ',
d: 'ㄹ',
e: 'ㅁ',
};
// console.log({ ...obj, f: 'ㅂ' });
const arr1 = [1, 2, 3, 4];
const arr2 = [...arr1, 5, 6];
// console.log(arr2); [1,2,3,4,5,6]
// 1)배열을 객체로
const members = ['ali', 'koko', 'julli'];
const membersObj = { ...members };
// console.log(membersObj); // {0: 'ali', 1: 'koko', 2: 'julli'}
// 2)객체를 배열로
const topic = {
name: '모던 자바스크립트',
language: 'JavaScript',
};
const newArray = [...topic]; // TypeError!