Notice
Recent Posts
Recent Comments
Link
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Tags
more
Archives
Today
Total
관리 메뉴

코드로보시죠

[JavaScript-47] ...args뜻 (REST파라미터) 본문

[JavaScript] 코드잇과 함께!

[JavaScript-47] ...args뜻 (REST파라미터)

코드로 보시죠 2023. 10. 1. 01:26

이번 시간에는, 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반복문으로 하면 되겠구나! 생각하시면 됩니다!