React/한입크기로 잘라먹는 리액트
[javaScript] Spread 연산자와 Rest 매개변수
냠냠쿠
2024. 12. 31. 10:47
728x90
1. Spread 연산자
- 객체나 배열에 저장된 여러개의 값을 개별로 흩뿌려주는 역할
(1) 배열 및 객체에서 사용
let arr1 = [1,2,3];
let arr2 = [4,5,6]; //4와 5사이에 1,2,3을 넣는 경우
//원래라면 아래와 같이 사용
let arr3 = [4, arr1[0], arr1[1], arr1[2], 5, 6];
//나중에 값이 추가/삭제 될 수도 있기 때문에 위험
//스프레드 연산자 배열 사용
let arr4 = [4, ...arr1, 5, 6];
console.log(arr4);
//스프레드 연산자 객체 사용
let obj1 = { a:1, b:2,};
let obj2 = { ...obj1, c:3, d:4,};
console.log(obj2);
(2) 함수 호출에 사용
let arr1 = [1,2,3];
function funcA(p1, p2, p3){
console.log(p1, p2, p3);
}
funcA(...arr1);
2. Rest 매개변수
- 나머지 매개변수 즉, 여러개의 매개변수를 받아야할 떄 배열형태로 한방에 받아올 수 있도록 해 주는 것
- 여기서 사용 된 ...은 Spread 연산자가 아니라 Rest 매개변수이다.
- Rest 매개변수 뒤에는 추가로 매개변수를 넣을 수 없다. (ex. ...rest, last)
//rest
function funcB(...rest){
console.log(rest);
}
funcB(...arr1);
만약 첫 번째 매개변수의 경우 다른이름으로 받고싶다면 아래와 같이 수정한다
function funcB(one, ...rest){
console.log(rest);
}
728x90