[JS] parameter 와 argument 의 차이 (인수, 인자)

colki·2021년 3월 6일
6
  • parameter
  • argument
  • 매개변수
  • 전달인자
  • 변수
  • 인자
  • 인수

벨로그와 노션에 함수 공부내용을 정리하면서,위 용어들을 무분별하게 섞어서 사용하고 있다는 걸 깨달았다. 각각의 용어의 정의와 차이점에 대해서 알아하고 제대로 사용해보려고 한다.



🔆 argument = 전달인자 = 값


plusNumber(1,2);

// 전달인자 1, 2

함수를 호출할 때 값을 전달한다고 해서 전달인자라고도 부른다.
매개변수와 달리 전달인자는 고정되어 있지 않고, 호출할 때마다 수시로 변하는 값(Value)이기 때문에 변수가 아닌 값(Value)으로 정의한다. 인수라고도 한다.



🔆 parameter = 매개변수 = 변수


function plusNumber(a,b) {
  return a+b;
}

// 매개변수 a, b 

함수 내부에 있는 인자로써, 특정한 값으로 정해져 있는 것이 아니라, 함수가 호출하면서 건네준 argument의 값이 변수 ( Variable )에 담기게 된다.

들어오는 인자가 매개체 역할을 하기 때문에 매개변수라고도 하며
영문으로 parameter 라고 한다.




🔅 인수 ? 인자 ?

argument는 인수라고 부르고 parameter를 인자라고 부르는게 맞다고 한다.

그러나 확실하진 않지만 명확하게 구분해서 쓰기보다는 그렇게 주고 받는 것들의 대명사격으로 믹스해서 많이 사용하고 있는 것 같다.

parameter(변수)는 '수'자로돌림하고,
argument는(전달인자) '자'자로 돌림하면 좋았을텐데 말이다.
번역의 문제인지 조금 헷갈리지만 결국에 맥락은 같으니까 
크게 중요한 것 같지는 않다는 결론.....이지만 검색 한 번더 해봤다.


Reference

인수(arguments) 객체 사용하기 | MDN

아래 두번째 줄과 같이 multiply 함수가 오직 한 개의 인수만 있다면 b를 1로 설정하는 방식을 사용하곤 했습니다.

function multiply(a, b) {
  return a * b
}

multiply(5)     // NaN !

어떤 개수의 인수도 이 함수로 넘겨줄 수 있고, 이 함수는 각각의 인수를 하나의 문자열 "리스트" 로 연결합니다. :

myConcat("; ", "elephant", "giraffe", "lion", "cheetah");

함수 - JavaScript | MDN

다음 예는 첫 번째 인자로로 함수를, 두 번째 인자로 배열을 받는 map 함수를 보여줍니다.

function map(f,a) {
  var result = [], // Create a new Array
      i;
  for (i = 0; i != a.length; i++)
    result[i] = f(a[i]);
  return result;
}
profile
매일 성장하는 프론트엔드 개발자

1개의 댓글

comment-user-thumbnail
2023년 3월 14일

궁굼한 사항에 대해서 잘 정리해주셔서 감사합니다.
좋은 하루 되세요

답글 달기