개념

  • 함수의 매개변수에 인수를 전달해주지 않으면 undefined를 기본값으로 갖는다.
  • undefined외에 기본 값을 설정하는 것이 유용할 수 있는 상황에서 default parameter를 사용한다.

사용

  • 기본값 미 사용

    함수 내부에서 매개변수를 기본값으로 정하지 않고 값이 undefined인 경우 값을 할당하도록 하였다.

    • 예시
      function multiply(a, b) {
        b = (typeof b !== 'undefined') ? b : 1
        return a * b;
      }
          
      multiply(5, 9)  // 45
      multiply(5)  // 5
      
  • 기본값 사용(default parameter)

    기본값 매개변수로 함수 내부에서 검사하지 않아도 되도록 할 수 있다.

    • 예시
      function multiply(a, b = 1) {
        return a * b
      }
          
      multiply(5, 9)  // 45
      multiply(5)  // 5
      multiply(5, undefined)  // 5
      

주의할 점

  • 함수는 호출 될 때마다 새로운 매개변수를 생성한다. 때문에 함수를 호출하여 매개변수의 기본값을 변경해줘도 다시 호출할때는 변경한 내용이 반영되어있지 않을것이다.
  • 기본값은 맨 마지막에 정의해줘야한다. 인수는 순서대로 매개변수에 할당되기때문에 앞쪽에 정의된 기본값은 덮어씌워질 수 있고 뒤쪽에 정의된 일반 매개변수는 인수를 전달받지 못할 수 있다.
  • 기본값보다 앞쪽에 나온 매개변수는 뒤쪽의 기본값에 사용할 수 있다.