JavaScript에서 매개변수(parameter)와 인수(argument)는 자주 혼용되지만 서로 다른 개념입니다. 이 두 용어의 차이를 정확히 이해하면 코드를 읽고 작성할 때 훨씬 수월해집니다.
매개변수(Parameter)란 무엇인가?
매개변수는 함수를 정의할 때 소괄호 안에 선언되는 변수 이름을 의미합니다. 함수가 어떤 값을 받아 처리할지 미리 지정해 두는 일종의 '자리 표시자' 역할을 합니다.
인수(Argument)란 무엇인가?
인수는 함수를 호출할 때 실제로 전달되는 구체적인 값입니다. 함수 내부에서는 이 값이 매개변수에 할당되어 사용됩니다.
즉, 정의 단계에서 쓰이면 '매개변수', 호출 단계에서 전달되는 실질적인 값은 '인수'라고 부릅니다.
예제 코드
다음은 배열을 인수로 전달하여 합계를 구하는 JavaScript 예제입니다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
body {
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
}
.result,.sample{
font-size: 20px;
font-weight: 500;
}
</style>
</head>
<body>
<h1>함수의 매개변수와 인수</h1>
<div class="sample"></div>
<div style="color: green;" class="result"></div>
<button class="Btn">CLICK HERE</button>
<h3>
위 버튼을 클릭하면 배열 값들이 인수로 함수에 전달됩니다.
</h3>
<script>
let sampleEle = document.querySelector('.sample');
let resEle = document.querySelector(".result");
let arr = [22,33,44,55];
sampleEle.innerHTML = arr;
function add(ARR){ // ARR이 바로 매개변수
let sum = 0;
ARR.forEach(element => {
sum+=element;
});
return sum;
}
document.querySelector(".Btn").addEventListener("click", () => {
// add(arr)의 arr이 바로 인수
resEle.innerHTML = '덧셈 결과 = ' + add(arr);
});
</script>
</body>
</html>
코드 설명
function add(ARR)— 여기서ARR이 매개변수입니다. 함수 정의부에 선언된 변수 이름이기 때문입니다.add(arr)— 버튼 클릭 시 호출되는 부분에서 전달되는arr(값 [22,33,44,55])가 인수입니다.forEach()메서드를 통해 배열의 각 요소를 순회하며 모든 값을 더한 뒤 결과를 반환합니다.
실행 결과
위 코드를 실행하면 화면에 배열 [22,33,44,55]와 버튼이 표시됩니다.

'CLICK HERE' 버튼을 클릭하면 배열의 모든 요소가 더해진 결과가 초록색으로 출력됩니다.

정리
| 구분 | 매개변수 (Parameter) | 인수 (Argument) |
|---|---|---|
| 사용 시점 | 함수 정의 시 | 함수 호출 시 |
| 역할 | 전달받을 값을 담는 변수 이름 | 실제로 전달되는 값 |
| 예제 | function add(ARR) | add([22,33,44,55]) |