• 함수의 Parameter 즉, 전달인자의 갯수가 유동적일 경우 ES5에서는
    arguments 라는 키워드를 활용했습니다.
function getMaxNum() {
  console.log(arguments);
}
getMaxNum(3, 5, 8, 10); // {0: 3, 1: 5, 2: 8, 3: 10}

{0: 3, 1: 5, 2: 8, 3: 10}arguments 객체는 유사배열(Pseudo Array, Array-like Object)로써 배열 메소드는 사용할 수 없습니다.

arguments[0]; // 3  arguments['0']과 일치
arguments[1]; // 5  arguments['1']
arguments[2]; // 8  arguments['2']
arguments[3]; // 10 arguments['3']
  • 한편 ES6에서는 Rest Parameter를 이용해 매개변수를 지정해 줍니다. 이 때 사용하는 것이 Spread Operator 입니다.
function getMaxNum(...nums) {
  console.log(nums);
}
getMaxNum(3, 5, 8, 10); // [3, 5, 8, 10]

...nums 에서 nums 는 명백히 순서가 존재하는 배열입니다. 즉 유동적인 전달인자 모두를 순서대로 가지는 배열로써 매개변수를 표현한 것입니다.

  • 또한 ES6에서는 전달인자가 특별하게 정해지지 않을 경우 매개변수의 기본값을 할당하고 싶을 때 활용하는 것이 Default Parameter입니다.
function getRoute(departure='ICN', destination) {
  return 'departure: '+departure+', destination: '+destination;
}
getRoute(undefined, 'PEK'); // departure: ICN, destination: PEK

2개 이상의 매개변수들에 대해서는 그 순서가 중요하므로 만약 중간에 배치된 매개변수의 default 값을 적용하기 위해서는 반드시 전달인자가 없음(undefined)을 표시해야 제대로 작동됩니다.

코드 및 자료 출처: 코드스테이츠(CodeStates)

0개의 댓글