반응형
화살표 함수를 제외한 모든 함수에서 arguments 객체를 사용할 수 있다.
arguments
arguments 객체를 통해 함수 호출 시 전달한 인자들을 참조할 수 있다.
유사 배열 객체이기 때문에 인덱스 프로퍼티와 length 프로퍼티 등을 가지고 있다.
사용 방법
arguments로 입력해주면 바로 사용할 수 있다.
배열처럼 index 프로퍼티로 값에 접근할 수 있으며
인자로 받은 값의 갯수를 length 프로퍼티로 받을 수 있다.
function sum(x, y, z) {
console.log(arguments[0], arguments[1], arguments[2]); // 1, 5, undefined
console.log(arguments.length); // 2
arguments[1] = 3;
return x + y + z;
}
sum(1, 5); // 4
또한 재할당도 가능하다.
매개변수보다 인자의 갯수가 더 적을 경우, 남은 매개변수에는 undefined로 반환된다.
나머지 매개변수
나머지 매개변수는 ES2015에 등장하였다.
arguments 객체와 달리 진짜 배열이기 때문에 인자들을 배열로 다룰 때 많이 활용된다.
배열이기 때문에 forEach, map, filter와 같은 배열 내장 메서드를 사용할 수 있다.
function sum(...args) {
args.forEach(function(arg){
//...
})
}
sum(1, 5);
- 일반 매개변수 + 나머지 매개변수
나머지 매개변수는 일반 매개변수와도 함께 사용 가능하다.
대신 일반 매개변수로 설정한 값 이후의 값들만 나머지 매개변수 배열로 들어간다.
function sum(name, ...args) {
console.log(name); // "money"
args.forEach(function(arg){
//...
})
}
sum("money", 1, 5);
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Functions/arguments
반응형
'Front-end > JavaScript' 카테고리의 다른 글
[JS] 모듈 export, import 사용하기 (0) | 2023.03.19 |
---|---|
[JS] Map 객체 (Map Object) 알아보기 (0) | 2023.03.13 |
[JS] 2진수, 8진수, 16진수, 10진수 변환하기 (2) | 2023.03.10 |
[JS] 매개변수(parameter)와 인자(argument)의 차이 (0) | 2023.03.03 |
[JS] NaN === NaN은 false || isNaN() / Number.isNaN() 차이 (0) | 2023.03.01 |