벨로그와 노션에 함수 공부내용을 정리하면서,위 용어들을 무분별하게 섞어서 사용하고 있다는 걸 깨달았다. 각각의 용어의 정의와 차이점에 대해서 알아하고 제대로 사용해보려고 한다.
plusNumber(1,2);
// 전달인자 1, 2
함수를 호출할 때 값을 전달한다고 해서 전달인자라고도 부른다.
매개변수와 달리 전달인자는 고정되어 있지 않고, 호출할 때마다 수시로 변하는 값(Value)이기 때문에 변수가 아닌 값(Value)으로 정의한다. 인수라고도 한다.
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");
다음 예는 첫 번째 인자로로 함수를, 두 번째 인자로 배열을 받는 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; }
궁굼한 사항에 대해서 잘 정리해주셔서 감사합니다.
좋은 하루 되세요