매개변수를 입력하지 않았을 경우에 대비해서 매개변수의 기본값을 정해줄 수 있습니다.
최신 기술에서는 매개변수의 괄호안에서 기본값을 정의할 수 있습니다.
/* 매개변수를 정의하지 않으면 undefined 입니다. */
function rollDie(numSides){
if(numSides === undefined){ // 매개변수 기본 값 지정
numSides = 6;
}
return Math.floor(Math.random() * numSides) + 1;
}
rolldie(20); // 난수 출력 ( 1~20 )
rolldie(); // 난수 출력 ( 1~6 ), 매개변수가 전달되지 않으면 if문으로 인해 6의 값이 됩니다.
function rollDie(numSides = 6) { // 전달받은 인자가 없는 경우 기본값 지정
return Math.floor(Math.random() * numSides) + 1;
}
rolldie(40); // 난수 출력 ( 1~40 )
rolldie(); // 난수 출력 ( 1~6 ), 매개변수가 전달되지 않으면 함수부분에서 기본값이 6으로 정해집니다.
/* 기본 값은 매개변수의 순서가 중요하다 */
function text(msg = 'suhee', person) {
console.log(`${msg}, ${person}!`);
}
text('Hi', 'chulsu'); // 출력 : Hi, chulsu!
text('Hi');
/*
출력 : Hi, undefined
person에 대한 기본 값 매개변수가 정해지지 않았기 때문에 undefined가 출력 됩니다.
매개변수가 여러 개인 경우에는 기본값을 할당해줄 때 두 번째 위치 이후에 자리한 매개변수에
기본값을 할당해주어야 합니다.
*/
/* 올바른 매개변수의 순서 */
function text(msg , person = 'suhee') {
console.log(`${msg}, ${person}!`);
}
text('Hi');
/*
출력 : Hi, suhee!
또는 모든 매개변수에 기본 값을 할당해도 됩니다.
function text(msg = 'hi' , person = 'suhee')
*/