
arguments 객체함수 내부에서 전달된 모든 인수를 배열처럼 저장하는 객체
...rest 사용map, forEach 같은 배열 메서드 사용 불가function showArguments() {
console.log(arguments);
console.log(arguments[0]); // 첫 번째 인수
}
showArguments(10, 20, 30);
↑ 일반 함수에서 arguments 사용 가능
function showArguments() {
console.log(arguments);
}
showArguments(1, 2, 3); // [Arguments] { '0': 1, '1': 2, '2': 3 }
const showArgs = () => {
console.log(arguments);
};
showArgs(1, 2, 3); // 오류 발생!
↑ 화살표 함수에서는 arguments를 사용할 수 없다
↑ undefined 발생
const showArgs = (...args) => {
console.log(args);
};
showArgs(1, 2, 3); // [1, 2, 3]
↑ 대신 ...rest(나머지 매개변수)를 사용해야 함!
argument (단수형, 개별 인수)함수에 전달된 각각의 인수를 의미하는 일반적인 용어
function add(a, b) { // 여기서 a, b가 각각 "argument"
return a + b;
}
consolelog(add(3, 5)); // 8
여기서 a와 b는 각각 "argument" (개별 인수)
전체 인수 목록을 가리킬 때는 arguments 객체를 사용
✔️argument vs arguments
둘은 다른 것이다
argument: 함수의 개별 인수 (특정한 키워드 X, 일반적인 개념)
arguments: 일반 함수에서 사용 가능한 객체 (전달된 모든 인수를 저장)
- 화살표 함수에서는 사용 불가능 (
...rest사용해야 함)
| 구분 | argument | arguments |
|---|---|---|
| 뜻 | 개별적인 함수 인수 | 함수에 전달된 모든 인수를 담은 객체 |
| 형태 | 특정한 키워드 아님 (일반 용어) | 함수 내부에서 자동으로 생성되는 객체 |
| 사용 가능 함수 | 모든 함수에서 사용 가능 | function에서만 사용 가능 (화살표 함수) |
| 예제 | function add(a, b) {} → a, b가 각각 argument | function test() { console.log(arguments); } |