[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문으로 총합을 구하는 등 다양하게 활용할 수 있다.

반응형