매개변수란, 함수를 호출할 때 인수로 받은 값을 함수 내부에서 사용할 수 있게 해주는 변수입니다. 함수 선언에서 정의됩니다.
const user = {
name:'Sera',
age:null
}
function getName(a){ //a는 매개변수
return a.name;
}
console.log(getName(user)); //user는 인수
이때 name을 구조분해할당 문법으로 가져오면 이런 형식이 됩니다.
function getName(a){
const { name } = a; //객체를 구조분해할당
return name;
}
console.log(getName(user));
매개변수 자체에서 구조분해를 하는 방식도 있습니다.
const user = {
name:'Sera',
age:null
}
function getName({ name = '이름이 존재하지 않습니다'}){ //기본값을 넣어주는 것도 가능합니다.
return name;
}
console.log(getName(user));
나머지 매개변수라는 개념도 정리해보겠습니다.
sum이라는 함수가 있다고 가정해보겠습니다. 이 함수는 매개변수로 들어오는 값들을 더해주는 함수인 것으로 기대할 수 있습니다.
sum(1,5)
sum(1,2,3)
sum(1,2,3,4,5,6,7,8,9,10)
sum 함수는 인수가 몇 개가 들어오든 상황에 대비할 수 있어야 합니다.
이 때 전개연산자를 사용합니다. 들어오는 인수들을 순서대로 받아서 배열로 저장합니다.
function sum(...a) { //매개변수에 전개연산자 사용
return a.reduce(function(acc, cur){
return acc+cur;
}, 0);
}
console.log(sum(20,30,40)); //90
console.log(sum(1,2,3,4,5,6,7,8,9,10)); //55