함수의 매개변수 in JS

동동·2021년 8월 29일

JS에서 함수는 함수 정의에 명시된 매개변수의 개수만큼만 매개변수를 전달하도록 제한하지 않습니다. 따라서 명시된 매개변수보다 적은 수의 매개변수 또는 많은 수의 매개변수를 함수 실행시에 전달할 수 있습니다.

1. 함수의 Default Parameter (매개변수 기본값)

  • Default Parameter로 함수에 정의한 것보다 적은 수의 매개변수를 전달한 경우의 문제를 해결할 수 있습니다.
  • Default Parameter란 함수의 인자를 전달하지 않거나 undefined를 전달할 경우 해당 인자의 초기값으로 사용할 값을 지정하는 문법을 말합니다. 함수를 선언할 때 함수의 인자 옆에 = 기호와 초기값으로 사용할 값을 지정합니다.
  • Default Parameter로는 원시 타입으로 한정되지 않고 어떠한 표현식이든 올 수 있으며, Default Parameter는 함수를 호출할 때마다 새롭게 평가되므로, 표현식이 호출하는 시기에 따라 다른 값을 반환한다면 Default Parameter 또한 매번 다른 값이 될 수 있습니다.
  • 또한 이러한 매번 평가되는 특성을 이용한다면, 나중에 선언된 매개변수의 기본값으로 앞에서 선언한 매개변수의 값을 사용할 수 있습니다.

2. 함수의 Rest Parameter(나머지 매개변수)

  • ES6 에서는 rest parameter(나머지 매개변수)를 사용하여 함수에 정의된 것보다 많은 수의 매개변수를 전달한 경우에 대응할 수 있습니다.
  • rest parameter는 함수에 전달된 매개변수의 나머지를 포함하는 배열입니다.
  • rest parameter는 매개변수 앞에 ... 을 붙여서 나타냅니다.
  • rest parameter에는 두가지 제한이 있습니다.
    1. rest parameter는 하나밖에 올 수 없고 매개변수 선언의 마지막 위치에만 사용할 수 있다는 점입니다.
    2. 객체의 접근자 프로퍼티의 set 메서드에서는 사용할 수 없다는 점입니다. set 메서드는 인자를 하나밖에 받을 수 없기 때문입니다.
profile
작은 실패, 빠른 피드백, 다시 시도

0개의 댓글