arguments 객체
arguments 객체는 함수 내부에서 사용할 수 있는 특별한 객체로, 함수에 전달된 모든 인자를 배열 형태로 접근할 수 있게 해준다. 이 객체는 함수가 호출될 때 자동으로 생성되며, 함수의 매개변수와는 별개로 존재한다. 즉, 함수의 매개변수 개수와 상관없이 인자를 전달할 수 있다.
arguments 객체의 특징
유사 배열 객체: arguments 객체는 배열처럼 인덱스를 통해 접근할 수 있지만, 실제 배열은 아니다. 따라서 배열 메서드를 직접 사용할 수 없다.
인자의 개수: arguments.length 속성을 통해 함수에 전달된 인자의 개수를 확인할 수 있다.
ES6 이후의 변화: ES6에서는 스프레드 연산자(...)와 나머지 매개변수(rest parameters)를 도입하여 arguments 객체의 사용을 줄일 수 있게 되었다.
arguments 객체의 예시 코드
function sum() {
let total = 0;
//arguments 객체를 사용하여 전달된 인자의 수만큼 반복
for (let i = 0; i < arguments.length; i++) {
// 각 인자를 total에 더함
total += arguments[i];
}
//최종 합계를 반환
return total;
}
// sum 함수 호출 예시
console.log(sum(1, 2, 3, 4)); //10
console.log(sum(5, 10, 15)); //30
위의 예시에서 sum 함수는 전달된 모든 인자를 더하여 결과를 반환한다. arguments 객체를 사용하여 인자의 개수에 상관없이 동적으로 처리할 수 있다.
나머지 매개변수
//가변 인자를 받아서 합계를 계산
function sum(...numbers) {
//numbers 배열의 모든 요소를 합산하여 반환
return numbers.reduce((total, num) => total + num, 0);
}
//sum 함수 호출 예시
console.log(sum(1, 2, 3, 4)); //10
console.log(sum(5, 10, 15)); //30
ES6에서는 arguments 객체 대신 나머지 매개변수를 사용할 수 있다. 나머지 매개변수는 함수의 매개변수 목록에서 마지막에 ...을 붙여 사용한다. 위의 예시에서 ...numbers는 함수에 전달된 모든 인자를 배열로 받아온다. 이 방법은 코드의 가독성을 높이고, 배열 메서드(reduce)를 직접 사용할 수 있게 해준다.
결론
arguments 객체는 자바스크립트에서 함수에 전달된 인자를 다룰 수 있는 유용한 도구이다. 하지만, ES6 이후로는 나머지 매개변수를 사용하는 것이 더 효율적이여서 권장된다.
'Language > JavaScript' 카테고리의 다른 글
[JS]this (0) | 2025.01.14 |
---|---|
[JS]apply, call 메서드 (0) | 2025.01.13 |
[JS]let, const, var (0) | 2024.12.30 |
[JS]템플릿 리터럴(Template Literal) (1) | 2024.12.24 |
[JS]객체(Object) 정의, 호출 (0) | 2024.12.24 |