매개변수 vs 인자
- 여기에서는 매개변수(parameter)와 인자(argument)에 대해 알아봅니다.
- 혼동하여 사용하는 경우도 많이 있지만, 그 차이점에 대해 알아봅니다.
function 함수이름(매개변수1, 매개변수2, ...) { 실행문; } 함수이름(인자1, 인자2, ...);
- 함수 선언에서 활용하기 위하여 사용하는 변수를 '매개변수'라고 부릅니다.
이름에서 드러나듯이 나중에 함수를 호출할 때 매개 역할을 하는 변수입니다.
- 함수를 호출할 때 사용하는 것을 '인자'라고 합니다.
즉, '전달인자'를 뜻합니다.
디폴트 매개변수
- 디폴트 매개변수(Default Parameter)
- 함수를 선언할 때, 매개변수의 값을 기본적으로 정해놓는 것을 말합니다.
- 기본 값을 정해두지만 함수 호출시 값을 전달한다면 그 값으로 대치됩니다.
function multiply(a, b = 2) { return a * b; } var result = multiply(5); document.write(result);
- '디폴트 매개변수 = 값'처럼 값을 기본적으로 설정해둡니다.
따라서 매개변수는 2개 선언하고 인자로 한 개만 전달해도 알아서 디폴트 매개변수 값으로 결과가 나온 것을 알 수 있습니다.
function multiply(a, b = 2) { return a * b; } var result = multiply(5, 7); document.write(result);
- '디폴트 매개변수'를 설정하였지만, 그 자리에 인자를 보내면 '디폴트 매개변수' 값은 무시됩니다.
나머지 매개변수
- 나머지 매개변수(Rest Parameter)
- 매개변수의 개수를 정확히 알 수 없을 경우 사용합니다.
- 매개변수 앞에 '...'를 붙여서 선언합니다.
function multiply(...nums) { for (var i = 0; i < nums.length; i++) { var result = nums[i] * 7; document.write(result + "<br>"); } } multiply(1, 2, 3);
- 나머지 매개변수는 기본적으로 배열과 같은 형태로 처리될 수 있습니다.