<aside> 📌

이상적인 함수는 “한 가지” 일만 해야하며 가급적 작게 만들어야 한다.

📌 매개변수의 기본값은 무조건 undefined

function add(a, b){
	console.log(a); //undefined
	console.log(b); //undefined
	return a + b;
}
add();

📌 매개변수의 정보는 함수 내부에서 접근이 가능한 arguments 객체에 저장된다.

function add(a, b){
	console.log(arguments);
	return a + b;
};
add(1, 2, 3); //[Arguments] { '0': 1, '1': 2, '2': 3 }

✏ 매개변수 기본값 Default Parameters a = 1, b = 1

function add(a = 1, b = 3) {
  console.log(a); // 1
  console.log(b); // 3
  console.log(arguments); // [Arguments] {}
  return a + b;
}
add();

✏ 외부에 값이 지정되면 Default Parameters 값은 무시되고, 외부 값으로 매개변수가 지정됨

function add(a = 1, b = 3) {
  console.log(a); // 10
  console.log(b); // 20
  console.log(arguments); // [Arguments] { '0': 10, '1': 20 }
  return a + b;
}
add(10, 20);

📌 Rest 매개변수(Rest Parameters)

→ 인자가 몇 개 인지 모를때 인자를 배열로 받아온다.

function sum(a, b, c, ...numbers) {
  console.log(a); //1
  console.log(b); //2
  console.log(c); //3
  console.log(numbers); //[4, 5, 6, 7, 8]
  console.log(arguments); 
}
sum(1, 2, 3, 4, 5, 6, 7, 8);
console.log(arguments); 
// [Arguments] {
  '0': 1,
  '1': 2,
  '2': 3,
  '3': 4,
  '4': 5,
  '5': 6,
  '6': 7,
  '7': 8
}