Rest 파라미터
Rest 파라미터(Rest parameters, '나머지 매개변수'라고도 함)는
함수의 마지막 매개변수 앞에 점 세 개 (...
)를 붙여서 정의한 매개변수를 의미합니다.
- Rest 파라미터는 자바스크립트의 함수 정의에서 사용되는 매개변수(parameters) 유형 중 하나입니다.
- Rest 파라미터는 함수를 정의할 때 매개변수의 수가 하나든 여러 개든, 어떤 경우에도 반드시 매개변수 목록의 마지막에 위치해야 합니다.
- Rest 파라미터부터는 사용자가 Rest 파라미터에 할당되는 인수를 계속 추가할 수 있습니다.
- Rest 파라미터 이후에 나오는 나머지 인수들은 배열로 묶여 Rest 파라미터에 할당됩니다.
- 여기서 '나머지'라는 용어는 영어로 'rest'라고 표현되며, 함수에 전달된 추가적인 인수들을 나타냅니다.
Rest 파라미터, 또는 '나머지 매개변수'로 불리는 것은 이 때문입니다.
Rest 파라미터는 함수 선언식, 함수 표현식, 화살표 함수 표현식 등 모든 함수 정의에 사용할 수 있습니다.
구문
param1
,param2:
: 함수 파라미터로, 함수에 필요한 고정된 인수를 나타냅니다....restParams
: Rest 파라미터로, 나머지 인수를 수집하는 배열을 나타냅니다.
예제
위 에시코드는 자바스크립트에서 Rest 파라미터를 사용하는 예시입니다. Rest 파라미터는 함수에 전달된 인수들 중에서 명시적으로 선언된 파라미터 이후의 모든 인수를 배열로 수집합니다.
여기서 함수 myFun
은 세 개의 파라미터 a
, b
, ...manyMoreArgs
를 받습니다. a
와 b
는 각각 첫 번째와 두 번째 인수를 나타냅니다. 그리고 ...manyMoreArgs
는 manyMoreArgs
라는 배열에 나머지 모든 인수를 저장합니다.
따라서 myFun("apple", "banana", "cherry", "date", "elderberry", "fig")
를 호출하면 "a: apple", "b: banana"가 각각 출력되고, 나머지 인수들은 Rest 파라미터인 manyMoreArgs
배열에 저장되어 출력됩니다.
주의해야 할 점
- 함수 정의에는 Rest 파라미터가 하나만 있어야 합니다.
- Rest 파라미터는 함수를 정의할 때 매개변수의 수가 하나든 여러 개든, 어떤 경우에도 반드시 매개변수 목록의 마지막에 위치해야 합니다.
- Rest 파라미터는 함수의
length
속성에 포함되지 않습니다.
가변항 함수를 표현할 때 사용
가변항 함수(Variable-arity Function)는 함수가 다양한 수의 인수(arguments)를 받아서 처리할 수 있는 함수를 가리킵니다. 이러한 함수는 호출될 때 전달되는 인수의 개수가 고정되지 않으며, 필요한 만큼의 인수를 받아 처리할 수 있습니다.
Rest 파라미터는 자바스크립트에서 가변항 함수를 표현하는 강력한 도구입니다. 이를 통해 함수는 다양한 수의 인수를 처리하고 다룰 수 있으며, 자바스크립트의 console.log()
함수와 같이 가변항 함수로 사용됩니다.
자바스크립트의 console.log()
함수
Rest 파라미터 활용 가변항 함수 예제
명세서
명세서 사양 | |
---|---|
...restParams
|
ECMAScript Language Specification #sec-function-definitions |
브라우저 호환성
함수 |
데스크탑 Chrome
|
데스크탑데스크탑 Edge
|
데스크탑 Firefox
|
Safari
|
---|---|---|---|---|
...restParams
|
47 | 12 | 15 | 10 |