함수를 만들 때 ...
이라는 기호를 파라미터 왼쪽에 추가가능하다
function 함수2(...파라미터들){
console.log(파라미터들)
}
함수2(1,2,3,4,5,6,7);
위 코드를 실행해보면 파라미터들이라는 변수를 출력해준다.
파라미터들이라는 변수는 모든 파라미터를 [] array 안에 담고 있다.
이게 바로 ES6 환경에서 쓸 수 있는 rest 파라미터이다.
원하는 파라미터 왼쪽에 ...
기호를 붙여주면 "이 자리에 오는 모든 파라미터를 [] 중괄호로 감싸준 파라미터" 라는 뜻이다.
그래서 출력해보면 저렇게 [1,2,3,4,5,6,7]이 나오는 것이고
그 자리에 입력한 모든 파라미터(1,2,3,4,5,6,7)를 중괄호로 감싸주는게 rest 파라미터이다.
그 자리에 있느느 파라미터를 [] 안에 감싸준다고 했으면 다른자리에 쓰면 어떻게 될까?
function 함수2(a,b ...파라미터들){
console.log(파라미터들)
}
함수2(1,2,3,4,5,6,7);
위 코드를 실행해보면 [3,4,5,6,7]이 출력된다.
첫 두개의 파라미터는 a,b로 쓰는데
a, b 그 뒤에 나오는 모든 파라미터는 중괄호에 감싸서 파라미터들이라는 array가 된다.
파라미터 종류가 많을 경우 arguments 문법보다 다루기 쉽고 간단해서 자주 사용한다.
rest(나머지) 파라미터라는 뜻대로 나머지 부분에만 사용가능하다.
항상 파라미터가 여러개면 rest는 항상 마지막 파라미터로 넣어야한다.
function 함수2(a, ...파라미터들, b) {
console.log(파라미터들)
}
function 함수2(a, ...파라미터들, ...파라미터들2){
console.log(파라미터들)
}
// 2개 이상 사용할 수 없다.
모든 파라미터를 전부 하나씩 콘솔창에 출력해주는 함수를 만들고 싶을땐?
(파라미터 갯수 제한없이 똑같은 기능을 실행해주는 함수)
function 함수(...rest){
console.log(rest[0]);
console.log(rest[1]);
console.log(rest[2]);
(...이하 쭉쭉쭉)
}
함수(1,2,3);
// 이렇게 해도 되지만 파라미터가 몇개 들어갈지 모르기 때문에
// console.log() 부분을 반복문을 이용하면 더 쉽게 만들 수 있다.
function 함수(...rest){
for (var i = 0; i < rest.length; i++) {
console.log(rest[i]);
}
}
함수(1,2,3,4,5,6,7,8);
rest라는게 모든 파라미터를 []안에 담아서 array처럼 만들어주는 고마운 변수기 때문에
반복문을 저렇게 돌리 수 있다.