
JavaScript에서의 옵셔널 파라미터 (Optional Parameters)
JavaScript에서 함수의 매개변수는 고정된 개수를 가지지 않으며, 호출 시 제공되지 않은 매개변수는 undefined로 처리됩니다. 이러한 특성 때문에 JavaScript에서는 함수의 매개변수를 유연하게 처리할 수 있습니다. 이러한 유연성을 활용하여 함수의 파라미터를 선택적으로 사용할 수 있는 다양한 방법을 알아보겠습니다.
ES6에서 도입된 기본값 파라미터를 사용하면 함수의 매개변수가 제공되지 않았을 때 기본값을 설정할 수 있습니다.
function greet(name = 'Guest') {
console.log(`Hello, ${name}!`);
}
greet('Alice'); // Hello, Alice!
greet(); // Hello, Guest!
위 코드에서 name 매개변수에 값이 제공되지 않으면 기본값인 'Guest'가 사용됩니다.
arguments 객체JavaScript의 모든 함수는 arguments 객체를 통해 호출 시 전달된 모든 인자에 접근할 수 있습니다. 이 객체를 사용하여 인자의 개수에 따라 조건적으로 처리할 수 있습니다.
function sum() {
let total = 0;
for (let i = 0; i < arguments.length; i++) {
total += arguments[i];
}
return total;
}
console.log(sum(1, 2, 3)); // 6
console.log(sum(5, 10)); // 15
위 코드에서 arguments 객체는 함수에 전달된 모든 인자를 배열처럼 제공해 주어 유연하게 처리할 수 있습니다.
ES6에서 도입된 나머지 매개변수는 가변 개수의 인자를 배열로 받을 수 있게 합니다. 이를 통해 함수의 매개변수를 보다 유연하게 처리할 수 있습니다.
function multiply(factor, ...numbers) {
return numbers.map(num => num * factor);
}
console.log(multiply(2, 1, 2, 3)); // [2, 4, 6]
위 코드에서 ...numbers는 나머지 매개변수로, 나머지 모든 인자를 배열로 받습니다.
옵셔널 체이닝은 객체의 중첩된 프로퍼티에 안전하게 접근할 수 있게 해줍니다.
let user = { name: 'Alice' };
console.log(user.address?.city); // undefined
위 코드에서 ?. 연산자는 user.address가 undefined이거나 null인 경우 에러를 발생시키지 않고 undefined를 반환합니다.
JavaScript에서는 기본값 파라미터, arguments 객체, 나머지 매개변수 등 다양한 방법을 사용하여 함수를 더욱 유연하게 만들 수 있습니다. 이를 활용하여 더욱 강력한 코드를 작성하세요.