Parameter와 Argument / 매개변수, 인자 그리고 인수 용어 구분

JunSeok·2022년 6월 17일
7

지식 기록

목록 보기
6/13
post-thumbnail

썸네일출처

parameter와 argument의 차이를 확실하게 정리하고자 공부를 따로 해봤다. 용어적으로 parameter와 argument의 차이는 통일된 정의를 가지고 있지만,

'인수, 인자'는 의미가 혼용되고 있었다.
어떤 곳은 parameter가 인자라고 하고, 어떤 곳은 argument가 인자라고 한다.

여기서 진짜 확실하게 알아보도록 하자


Parameter와 Argument

우선 Parameter와 Argument의 차이를 알아보자

Parameter는 함수를 정의할 때 사용되는 변수를 의미한다.

Argument는 실제로 함수가 호출될 때, 넘기는 변수값을 의미한다.

function plus (num1, num2) {
	return num1 + num2;
}
// num1과 num2는 parameter이다.

plus(10, 20);
// 10과 20은 argument이다.  

오라클 曰
"Parameters refers to the list of variables in a method declaration. Arguments are the actual values that are passed in when the method is invoked. When you invoke a method, the arguments used must match the declaration's parameters in type and order."

-> parameter는 메소드 선언의 변수 목록이며, argument는 메소드가 호출될 때 전달되는 실제 값이다.

인자, 인수

Argument
인수란 함수에 입력으로 간주되는 (원시적인 또는 객체의)값 이다.

보다시피 MDN에서 Argument를 인수라 번역했다.
공식문서인만큼 Argument는 인수라 하자.

인수와 인자는 같은 말?

지식인에서 인수, 인자 그리고 매개변수의 차이를 묻는 질문을 찾았다.
C언어 질문이기는 하지만 큰 도움이 될 것 같은 답변이었다.

인수(引數)와 인자(引子)는 함수에게 넘겨주기 위해서 끌어오는(引) 값(數;子)이라는 의미로 같은 말이다.
매개변수와 인자(인수)는 다른 말이다. 착각하면 안 된다.

function add (a, b) { 
// argument값을 받기 위해 선언된 변수 a와 b는 parameter라 부른다. 인자를 받기 위한 매개체로써 선언된 변수라는 의미이다.
 return a + b ;
}

add(1, 2) // 여기서 넘겨진 값은 '인자(인수 ; argument)'라 부른다.
function add (a, b) {
 return a + b;
}

const x = 2;
const y = 3;

const z = add(x, y)

console.log(z)
// 5

add를 호출할 때 '인자'를 상수 값이 아닌, 다른 변수 x와 y의 값으로 넘겼다.
여기서 매개변수는 그대로 a와 b이다. 하지만 x, y라는 변수도 인자로 넘기는 데에 사용되었다.
인자가 상수가 아닌 특정 변수의 값으로 넘겨지는 경우, 이 특정 변수를 '실제 매개 변수(actual parameter)'라 부르고, 처음에 이야기 된 '매개 변수'인 a와 b를 실제 매개 변수와 구분시켜주기 위해 '형식 매개 변수(formal parameter)'라 부르는 것이다.

결론

parameter는 매개변수이고 형식 매개 변수(함수에서 정의된 변수)와 실제 매개 변수(인자(인수)값을 변수로 넘겨줄 때)로 나눈다.
argument는 인자 또는 인수라 부른다. 둘 다 같은 말이다.

Reference

오라클

MDN

profile
최선을 다한다는 것은 할 수 있는 한 가장 핵심을 향한다는 것

0개의 댓글