먼저, 프로그래밍에서 매개변수(parameter)와 인수(argument)는 함수(function) 호출에 관련된 용어로 사용된다.
둘 다 함수의 인터페이스(interface)를 정의하는 데 사용되는 중요한 개념이다.
그렇다면 Parameter와 Argument의 차이는 무엇일까?
확실하게 정리해보자.
우선 Parameter와 Argument의 차이를 살펴보면
Parameter는 함수를 정의할 때 사용되는 변수를 의미한다.
Parameter는 함수 호출 시에 인수를 전달하여 값을 받는다.
반면
Argument는 실제로 함수가 호출될 때, 넘기는 변수값을 의미한다.
인수는 매개변수에 대입되어 함수에서 처리된다.
아래의 예시코드를 살펴보자.
function greet(name) { // name은 parameter
console.log("Hello, " + name);
}
greet("John"); // "John"은 argument
위의 코드에서 name은 greet 함수의 parameter다.
함수를 호출할 때, "John"이라는 문자열을 argument로 전달하고 함수 내부에서 parameter인 name은 argument인 "John"으로 대입되어 실행된다.
따라서, 위 함수 호출의 결과는 "Hello, John"이 콘솔에 출력된다.
아래의 코드를 살펴보자.
function add (a, b) {
return a + b;
}
const x = 2;
const y = 3;
const z = add(x, y)
console.log(z)
// 5
위 코드를 살펴보면 add 함수를 호출할 때 argument를 상수 값이 아닌, 다른 변수 x와 y의 값으로 넘겼다.
여기서 parameter는 그대로 a와 b지만 x, y라는 변수도 argument로 넘기는 데에 사용되었다.
argument가 상수가 아닌 특정 변수의 값으로 넘겨지는 경우,
이 특정 변수를 '실제 매개 변수(actual parameter)'라 부르고,
처음에 이야기 된 '매개 변수'인 a와 b를 실제 매개 변수와 구분시켜주기 위해
'형식 매개 변수(formal parameter)'라 부른다.
사실 parameter와 argument의 차이점에 대해서는 알고 있었다.
하지만 한 번더 개념을 정리하자는 의미에서 기록하였는데 parameter 안에서 실제 매개 변수(actual parameter)와 형식 매개 변수(formal parameter)로 나누어져 있는지는 몰랐다.
이번 기회에 지식을 하나 또 쌓고 간다!