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