[JavaScript] arguments 객체
Lpla
·2021. 3. 29. 21:33
반응형
자바스크립트는 함수를 호출할 때 arguments 객체가 함수 내부로 전달된다.
arguments 객체가 하는 일은 크게 두 가지이다.
1. 함수의 인자(argument) 참조
arguments 객체를 사용하여 함수의 인자를 참조할 수 있으며, 이때 인덱스는 0부터 시작한다.
function func(a) {
return a + arguments[1] + arguments[2]
}
func(10, 20, 30);
// 60
위 func 함수에서 파라미터는 a 하나 밖에 없지만 func(10, 20, 30)
처럼 인자(argument)가 3개인 함수를 호출한다고 해서 에러가 발생하지 않는다.
func 함수에서 10은 a에 할당되고 arguments[0]에도 할당된다.
마찬가지로 20과 30은 각각 arguments[1]과 arguments[2]에 할당된다.
따라서 첫번째 인자를 호출하는 방법은 arguments[0] 이고 다음 인자는 arguments[1] 처럼 호출할 수 있다.
자바스크립트는 함수를 호출할 때 arguments 객체가 함수 내부로 전달된다.
2. 유사 배열
arguments는 배열이 아니지만 배열과 유사하게 사용할 수 있다.
대표적으로 .length 로 인자의 개수를 구할 수 있다.
function calc(){
var i, sum = 0;
for(i = 0; i < arguments.length; i++){
console.log(i+' : '+arguments[i]);
sum += arguments[i];
}
return sum;
}
console.log(calc(1,2,3,4));
위 calc 함수에서는 arguments.length 결과값은 4다.
즉 인자의 개수를 쉽게 구할 수 있어 for문으로 총합을 구하는 등 다양하게 활용할 수 있다.
반응형