기본 매개변수는 함수 선언 시 매개변수에 기본값을 할당하는 기능을 제공한다.
즉, 함수를 호출할 때 해당 매개변수에 값을 전달하지 않으면, 기본값이 매개변수에 할당된다.
사실 JavaScript
만 국한된 것이 아니라, 거의 대부분의 언어에서 제공하는 기능 중 하나이다.
다음과 같이 원하는 소수점 자리만큼 잘라서 보여주는 함수가 있다고 하자.
export const formatBalance = (balance: string, defaultDecimal: number = 5, decimalLength: number = 5) => {
try {
const split = balance?.split('.');
const integer = split[0];
if (defaultDecimal > defaultDecimal) {
decimalLength = defaultDecimal;
}
if (split.length > 1) {
const decimal = split[1];
return parseFloat(integer + '.' + decimal.slice(0, decimalLength));
} else {
return Number(integer);
}
} catch (e) {
return 0;
}
};
하지만, 파라미터 중 defaultDecimal
과 decimalLength
가 없는 경우가 있다고 하자.
보통 이런 함수로 사용하기 위해 억지로 초기값을 만들어서 집어넣는 경우가 있는데, 그럴 때를 대비하여 ECMAScript 2015(ES6)
버전부터 기본 매개변수 기능이 도입되었다.
즉, 해당 매개변수를 생략하거나, 또는 undefined
로 전달 될 경우, 초기값이 자동으로 사용된다.
// 매개변수가 없을 때
formatBalance(1.03) // 1.03은 balance의 파라미터 값이다.
// 매개변수가 undefined 일때
formatBalance(1.03, undefined, 10) // defaultDecimal은 undefined이므로 초기값 5로 작동한다.