자바스크립트 함수 매개변수 생략 및 예시
자바스크립트 함수에서의 매개변수 생략
자바스크립트 함수는 매개변수를 정의할 때, 명시적으로 값을 지정하거나 생략할 수 있습니다. 매개변수 생략은 함수를 호출할 때 전달되지 않은 값을 다룰 때 특히 유용합니다.
함수는 어떤 매개변수를 생략하더라도 에러를 발생시키지 않습니다. 생략된 매개변수는 undefined로 처리됩니다. 따라서 함수 내부에서 조건문을 사용하여 생략된 매개변수에 기본 값을 할당할 수 있습니다.
예를 들어, 다음은 인사말과 이름을 받아와서 출력하는 함수입니다. 이름을 생략할 경우, "손님"으로 인사말을 출력합니다.
function greet(greeting, name) {
if (name === undefined) {
name = '손님';
}
console.log(greeting + ', ' + name + '님!');
}
greet('안녕하세요', 'John'); // 안녕하세요, John님!
greet('안녕하세요'); // 안녕하세요, 손님님!
매개변수의 기본값 설정
ECMAScript 6부터는 함수 정의에서 매개변수의 기본값을 설정할 수 있습니다. 이를 통해 함수 호출 시 생략된 매개변수에 자동으로 기본값이 할당됩니다.
이를 위해서는 매개변수 정의 시 할당 연산자(=)를 사용하여 기본값을 설정하면 됩니다.
예를 들어, 다음은 인사말과 이름을 받아와서 출력하는 함수에서 기본적으로 "손님"으로 설정된 이름 기본값을 가지고 있습니다.
function greet(greeting, name = '손님') {
console.log(greeting + ', ' + name + '님!');
}
greet('안녕하세요', 'John'); // 안녕하세요, John님!
greet('안녕하세요'); // 안녕하세요, 손님님!
기본값 설정을 하는 것은 매개변수 생략에 대한 예외처리를 간편하게 할 수 있습니다. 또한, 코드 가독성을 향상시킬 수 있습니다.
나머지 매개변수
자바스크립트 함수는 나머지 매개변수를 통해 가변 인자를 처리할 수 있습니다. 나머지 매개변수는 함수 내부에서 배열로 사용될 수 있으며, 호출 시 전달된 모든 인자를 배열로 받아옵니다.
나머지 매개변수는 스프레드 연산자(...)를 사용하여 정의합니다. 이를 통해 함수 호출 시 전달된 인자들을 배열로 받을 수 있습니다.
예를 들어, 다음 함수는 전달된 모든 숫자들을 더하는 함수입니다.
function sum(...numbers) {
let total = 0;
for (let num of numbers) {
total += num;
}
return total;
}
console.log(sum(1, 2, 3, 4, 5)); // 15
나머지 매개변수를 사용하면 함수 호출 시 전달된 인자의 개수에 상관없이 처리할 수 있습니다. 이를 통해 유연하고 다양한 인자 처리를 가능하게 합니다.
매개변수 생략과 기본값, 나머지 매개변수 함께 사용
매개변수 생략, 기본값, 나머지 매개변수는 동시에 사용될 수 있습니다. 이를 통해 함수 호출 시 다양한 상황에 대한 처리를 간편하게 할 수 있습니다.
예를 들어, 다음 함수는 인사말과 함께 전달된 이름들을 출력하는 함수입니다. 인사말은 기본값으로 "안녕하세요"를 가지고 있습니다. 인사말이 생략된 경우, 기본값으로 설정됩니다.
function greet(greeting = '안녕하세요', ...names) {
for (let name of names) {
console.log(greeting + ', ' + name + '님!');
}
}
greet('반갑습니다', 'John', 'Sarah'); // 반갑습니다, John님! / 반갑습니다, Sarah님!
greet(undefined, 'David'); // 안녕하세요, David님!
이와 같이 매개변수 생략, 기본값, 나머지 매개변수를 조합하면 다양한 상황에서 유연하게 함수를 활용할 수 있습니다.
이상으로 자바스크립트 함수의 매개변수 생략과 예시에 대해 알아보았습니다. 매개변수 생략을 통해 기본값을 설정하거나 나머지 매개변수를 활용하여 가변 인자를 처리할 수 있습니다. 함수의 유연성과 가독성을 높이는 데에 매개변수 생략은 매우 유용한 기능입니다.