JavaScript - arguments 객체

arguments

자바스크립트의 모든 함수는 내부에 arguments라는 변수를 가지고 있으며, 이 변수는 매개변수의 배열이다.

arguments는 함수를 호출할 때 넘긴 인자들이 배열 형태로 저장된 객체를 의미한다. 그래서 이 객체는 실제 배열이 아니고 “유사 배열 객체” 이다.

arguments 객체의 구성

  • 함수를 호출할 때 넘겨진 인자(배열 형태)
  • length 프로퍼티 : 호출할 때 넘겨진 인자의 개수
  • callee 프로퍼티 : 현재 실행 중인 함수의 참조값

👉🏻 arguments 객체는 매개변수가 정확하게 정해지지 않은 함수를 구현하거나, 전달된 인자의 개수에 따라 서로 다르게 처리를 해줘야 하는 함수일 때 유용하게 사용 가능

length 프로퍼티는 배열과 유사하게 동작하지만 유사 배열 객체이므로 배열 메서드는 사용할 수 없다.

//예시
function meetAt(year, month, date) {
  let length = arguments.length;

  if (length === 1) {
    return year + "";
  } else if (length === 2) {
    return year + "" + month + "";
  } else if (length === 3) {
    return year + "/" + month + "/" + date;
  }
}