코드로보시죠
[JavaScript-47] ...args뜻 (REST파라미터) 본문
이번 시간에는, rest 파라미터에 대해서 알아보겠습니다!
결론부터 말하면,
rest 파라미터는 함수에 넘겨지는 아규먼트 값들의 개수를 고정시키지 않기 위해 사용합니다.
조금 쉽게 말하면, rest파라미터를 사용하면,
함수를 호출 할 때마다 넘겨주는 인자의 개수가 달라도 된다는 얘기죠.
언제는 100개, 언제는 3개 이런식으로요!
말로 하자니 조금 안 와닿는 것 같아, 코드를 통해 보여드릴게요.
function winner(fisrt, second, third, ...args){
console.log(`gold medal: ${first}`);
console.log(`silver medal: ${second}`);
console.log(`bronze medal: ${third}`);
for (let arg of args) {
console.log(`participated: ${arg}`);
};
};
//호출
winner('lee', 'kim', 'park', 'do', 'jake', 'tom');
winner('lee', 'kim', 'park', 'do');
자, winner라는 함수를 만들어두고,
두 번 호출하고 있는데요,
각각의 호출에서 넘겨준 인자의 수가 다르죠?
하지만! 전혀 상관이 없다! 이 말입니다!
두 코드 모두, 'do' 부터는 args로 들어가겠죠?
...args 가 바로 레스트 파라미터 입니다!
이름에서도 알 수 있듯, 앞에 있는 파라미터 공간에 하나씩 넣어주고 남은 애들을 모두 모아주는 역할을 합니다.
first, second, third이렇게 세 개의 공간이 다 찼는데도, 선언된 애들은 ...args가 몽땅 데려가준다는 거죠.
args는 배열입니다!
그래서, for of반복문을 통해 args안의 요소들을 프로그래밍에 활용할 수 있어요!
이 점을 꼭 기억합시다!
만약, 파라미터가 ...args만 단독으로 있다면,
그냥 몇 개를 입력해도 상관없는 함수구나~ 생각하시고,
각 요소들의 접근은 args가 배열이니까 for of반복문으로 하면 되겠구나! 생각하시면 됩니다!
'[JavaScript] 코드잇과 함께!' 카테고리의 다른 글
[JavaScript-49] this키워드 (2) | 2023.10.01 |
---|---|
[JavaScript-48] arrow function (화살표함수) (2) | 2023.10.01 |
[JavaScript-46] 함수를 변수에 할당해 사용하기 (함수표현식) (0) | 2023.10.01 |
[JavaScript-45] false로 취급받는 아이들 (0) | 2023.10.01 |
[JavaScript-44] 배열과 객체를 복사할 때의 주의사항 (0) | 2023.10.01 |