티스토리 뷰
Arguments
특징
- 유사배열이다.
- forEach(), map(), filter() 등.. 배열 메서드를 사용할 수 없다.
- Array.from(Arguments) 처럼 배열로 변환하여 사용한다.
어떤 경우에 쓰이나?
1. 가변 인자 함수
함수가 가변 인자를 받을 수 있는 경우.
arguments 객체를 사용하여 모든 인수에 접근할 수 있다.
예를 들어, 함수가 임의의 개수의 숫자를 받아 합계를 계산하는 경우
function calculateSum() {
let sum = 0;
for (let i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
calculateSum(1, 2, 3); // 6
calculateSum(4, 5, 6, 7, 8); // 30
2. 배열 변환
arguments 객체를 배열로 변환하여 배열 메서드를 사용하고자 할 때, 'Array.from()' 이나 전개 연산자 (...) 를 사용하여 배열로 변환할 수 있다.
function convertToArray() {
const argsArray = Array.from(arguments);
// 또는 const argsArray = [...arguments];
console.log(argsArray);
}
convertToArray(1, 2, 3, 4); // [1, 2, 3, 4]
aruments 객체는 함수에 전달된 인수들을 처리하는 유용한 방법을 제공하지는 한다.
그러나 일반적으로는 ... 문법을 사용하여 가변 인자를 처리하는 것이 더 선호된다.
... 문법은 명시적이고 가독성이 좋으며, 배열로 바로 사용이 가능하기 때문이다.
하지만, arguments 객체는 ES5 이전의 코드 호환성이나 특정 상황에서 유용하게 사용할 수 있다.
'[개발] > JavaScript' 카테고리의 다른 글
| CommonJS is not going away (번역) (0) | 2023.07.06 |
|---|---|
| JavaScript SDK(JavaScript Software Development Kit) (0) | 2023.07.04 |
| map VS. forEach (0) | 2023.07.04 |
| URLSearchParams (0) | 2023.06.27 |
| truthy 한 경우: 데이터가 존재하는 경우 (0) | 2023.06.27 |