arguments

장돌뱅이 ·2022년 3월 15일
0

JavaScript

목록 보기
37/46

arguments

arguments라는 객체는 함수 안에서 함수 인자와 관련된 정보를 담고 있다.
Array형태의 객체이며 사용방법이 배열과 유사하다.
함수 내에서 이용 가능한 지역변수다.

function sum() {
  let _sum = 0;
  for (i = 0; i < arguments.length; i++) {
    document.write(i + ":" + arguments[i] + "<br/>");
    _sum += arguments[i];
  }
  return _sum;
}

sum(5, 6, 7, 8);

위 함수는 매개변수가 없다. 그런데 인자를 전달하여 함수를 호출하면 이 인자들은 arguments라는 객체에 담긴다. 이 객체를 통해서 사용자가 전달한 인자에 접근할 수 있다.
arguments라는 것을 통해서 1. length로 함수의 인자 갯수를 알 수 있고, 2. for문의 arguments[i]로 (index) 그 인자값이 무엇인지 알 수 있다.

그러나 배열의 내장 메서드(forEach, map등)는 사용할 수 없다.

몇개의 인자를 받을지 알 수 없을 때 아예 매개변수를 정해놓지 않고 함수를 선언하며 함수 내부에서 arguments라는 객체를 이용하여 특정 값을 알아낸다.

매개변수의 수

function one(a) {
  console.log(one.length, arguments.length);
}

one(5, 6, 7, 8);
// 1 4

함수.length는 함수에 정의된 매개변수의 수를 의미하고
arguments.length는 함수로 전달된 실제 인자의 수를 의미한다.
이 두개의 값을 비교해서 함수를 의도적으로 유용하게 사용할 수 있다.

0개의 댓글

관련 채용 정보