스프레드 : 배열의 원소나 객체의 프로퍼티를 나눌 때 / 그래서 배열이나 객체를 펼쳐놓는다
모든 원소나 속성,값을 가져와서 새 배열이나 객체에 전달한다.
const newArry = […oldArry, 1, 2]
oldArry에 있는 모든 원소들을 꺼내서 대괄호로 새로 생성한 newArry 배열에 추가하고 거기에 1, 2 추가
const newObject = {…oldOjt, newProp:5}
oldOjt에 있는 모든 속성, 값을 꺼내서 newObject라는 새 객체에 넣고 그 다음에 newProp:5라는 새로운 속성,값도 추가한다
❓❓❓❓❓
oldOjt가 새로운 키값을 갖게 되면????
newProp:5로 덮어씌워진다
우리가 갖고 있는 속성이 우선권이 있다
❓❓❓❓❓
레스트 : 함수의 인수들을 하나의 배열로 합칠 때 사용
function aaa(…args) {
aaa함수는 매개변수를 무제한으로 받는다
매개변수가 몇개든 모두 하나의 배열 args로 통합됨 (1개여도)
return args.sort() // 여러개의 매개변수를 args 배열에 넣은 후 정렬시김
}
const rest_filter = (…args) ⇒ {
return args.filter( e ⇒ e === 1) //filter 메소드 는 배열 args에서 전달되는 모든 원소들에 대해 함수( e ⇒ e === 1 )를 실행한다
}
console.log(rest_filter(1,2,3))