함수를 정의할 때, 만약 인자를 전달하지 않으면 기본값을 설정할 수 있습니다.
문법:
function 함수명(매개변수1, 매개변수2 = 기본값) {
// 코드 실행
}
function 더하기(a, b = 10) {
console.log(a + b);
}
더하기(1); // 출력: 11
a에는 1이 할당되고, b는 인자가 없으므로 기본값 10이 사용됩니다.1 + 10 = 11이 콘솔에 출력됩니다.function 더하기(a, b = 2 * 5) {
console.log(a + b);
}
더하기(1); // 출력: 11
b의 기본값으로 2 * 5가 평가되어 10이 할당됩니다.function 더하기(a, b = 2 * a) {
console.log(a + b);
}
더하기(3); // 출력: 9
b의 기본값은 2 * a로, a가 3일 때 2 * 3 = 6이 할당됩니다.3 + 6 = 9가 출력됩니다.function 임시함수(){
return 10;
}
function 더하기(a, b = 임시함수()) {
console.log(a + b);
}
더하기(3); // 출력: 13
b가 제공되지 않으면, 임시함수()가 실행되어 반환된 값(10)이 기본값으로 사용됩니다.3 + 10 = 13이 출력됩니다.arguments는 함수 내에서 사용 가능한 내장 객체로, 함수에 전달된 모든 인자들을 배열과 비슷한 형태로 관리할 수 있게 해줍니다.
function 함수(a, b, c) {
console.log(arguments);
}
함수(2, 3, 4); // 출력: [2, 3, 4]와 유사한 객체
arguments는 함수에 전달된 모든 인자들을 순서대로 담고 있는 배열 유사 객체입니다.function 함수(a, b, c) {
console.log(arguments[0]); // 2
console.log(arguments[1]); // 3
console.log(arguments[2]); // 4
}
함수(2, 3, 4);
function 함수(a, b, c) {
for (var i = 0; i < arguments.length; i++){
console.log(arguments[i]);
}
}
함수(2, 3, 4);
// 콘솔에 차례대로 2, 3, 4 출력
arguments.length를 이용해 전달된 인자의 개수를 확인하고, 반복문을 통해 모든 인자를 순회할 수 있습니다.arguments 대신 rest 파라미터 문법 (...args)이 도입되어 보다 편리하게 함수의 나머지 인자들을 배열로 받을 수 있게 되었습니다.