가변 인자(variable arguments)는 함수에 여러 개의 매개변수를 동적으로 전달하는 방법을 제공합니다. 이를 통해 유연하게 함수를 호출하고 다양한 매개변수를 처리할 수 있습니다. 자바스크립트에서는 배열 또는 인수 객체(argument object)를 사용하여 가변 인자를 처리하는 경우가 많습니다.
하지만 ES2020에서 추가된 Nullish Coalescing 연산자(??)를 사용하면 가변 인자를 더욱 간편하게 처리할 수 있습니다. Nullish Coalescing 연산자를 이용하면 매개변수가 없거나 null 또는 undefined인 경우에 대해 기본값을 설정할 수 있습니다.
다음은 Nullish Coalescing 연산자를 사용하여 가변 인자를 처리하는 예제입니다.
function sumNumbers(...numbers) {
let total = 0;
for (let number of numbers) {
total += number ?? 0;
}
return total;
}
console.log(sumNumbers(1, 2, 3)); // 6
console.log(sumNumbers(1, null, 3)); // 4
console.log(sumNumbers(1, undefined, 3)); // 4
console.log(sumNumbers()); // 0
위 코드에서는 sumNumbers
함수를 정의하고 가변 인자 numbers
를 받습니다. 각 숫자를 반복하면서 Nullish Coalescing 연산자(??
)를 사용하여 null 또는 undefined인 경우에는 0으로 처리합니다. 그리고 모든 숫자의 합을 반환합니다.
위 예제를 실행하면 첫 번째 호출에서는 1, 2, 3을 인자로 전달하여 6이 반환됩니다. 두 번째와 세 번째 호출에서는 null 또는 undefined가 포함된 인자를 전달하여 0이 아닌 다른 숫자가 반환됩니다. 마지막 호출에서는 인자가 없으므로 0이 반환됩니다.
Nullish Coalescing을 이용하면 가변 인자 처리를 더욱 간결하게 할 수 있으며, null 또는 undefined인 경우에 대한 예외 처리를 손쉽게 추가할 수 있습니다. 이를 활용하여 코드를 작성하면 가변 인자를 다루는 함수를 보다 효율적으로 개발할 수 있습니다.
#javascript #nullishcoalescing