반응형

 

 

 

 

 

 

🌈 매개변수(parameter)와 전달인자(argument)란?

function testFun(a,b) {
    return a + b
} 

testFun(2,3);

 

위 코드에서 함수를 선언할 때 (a,b)의 a,b가 매개변수(parameter)이며 매개변수는 말 그대로 변수이다.

또한, 함수를 호출할 때의 (2,3)이 변수에 들어가는 값이며 인수(arguments) 라고 한다.

 

자바스크립트에서 arguments는 함수에 전달된 인수에 해당하는 객체이며 유사 배열에 해당한다.

 

 

 

 

출처 - 모던 자바스크립트 Deep dive

 

정리하자면, 위 이미지에서 x와 y는 매개변수(Parameter, 인자)에 해당하며 함수의 정의에서 사용되는 변수이다. 그리고 add(2, 5)에서 2와 5를 전달인자(argument, 인수) 라고 부르며 파라미터에 할당되는 값을 말한다.

 

 

 

 

 

📘 인수(argument)

 

1️⃣ 인수(arguments)의 특징

자바스크립트에서는 함수를 호출할 때 arguments 객체가 함수 내부로 전달된다. 

arguments 객체는 함수를 호출할 때 넘긴 인자들이 배열 형태로 저장된 객체를 말한다. 

function testFun(arg1, arg2) {
    console.log(arg1, arg2);
};

testFun(); // undefined undefined ------(1)
testFun(1); // 1 undefined -------------(1)
testFun(1, 2); // 1 2
testFun(1, 2, 3); // 1 2 -------------(2)

 

의 코드에서 유추할 수 있는 arguments의 특징은 아래와 같다.

 

(1) 함수의 매개변수보다 적게 인수를 전달할 경우와 전달되지 않은 인자에는 undefined 값이 할당된다.
(2) 매개변수보다 많게 인수를 전달 할 경우 초과된 인수는 무시되지만 arguments라는 객체에 할당된다.

(+) arguments는 지역변수이며, arguments 객체를 통하여 초과로 전달된 인수를 참조할 수 있다.

  • 매개변수 개수가 정확하게 정해지지 않은 함수를 구현하거나 전달된 인자의 개수에 따라 서로 다른 처리를 해줘야 하는 함수를 생성할 때 유용하다.

 

 

 

 

2️⃣ 인수(arguments)의 구조

arguments는 세 개의 부분으로 구성되어 있으며 아래와 같은 특징 때문에 유사 배열이라고 불린다.


◾ 함수를 호출할 때 넘겨진 인수 (index 배열 형태)

     → arguments[index]를 통해 함수에 들어온 인자의 특정 자릿수의 값을 알 수 있다


 length 프로퍼티

     → arguments.length를 통해 이 객체 안에 몇 개의 인수를 가졌는지 알 수 있다

     → 배열과 유사하게 동작하지만 유사 배열 객체이므로 배열 메서드를 사용할 수는 없다.


 callee 프로퍼티

     → 실행 중인 함수의 참조값

 

 

 

 

 

 

 

 

📌 참고사이트

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Functions/arguments

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Functions/Default_parameters

 

 

 

 

 

 

 

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기