본문 바로가기
프로그래밍/알고리즘, 프로그래밍 언어

[JavaScript] arguments object (객체)

by 제이콥J 2021. 12. 8.

arguments 객체란?

arguments 객체 : 함수 호출 시, 전달인자들이 배열 형태로 저장된 객체

함수 호출 시 전달인자와 함께 arguments 객체가 함수내부로 전달됨

function test () {
  console.log('arguments[0]', arguments[0])
  console.log('arguments[1]', arguments[1])
  console.log('arguments[2]', arguments[2])
}

test(1,2)
// arguments[0] 1
// arguments[1] 2
// arguments[2] undefined

test(1,2,3)
// arguments[0] 1
// arguments[1] 2
// arguments[2] 3

 

arguments 객체의 활용

매개변수의 개수가 정확하게 정해지지 않은 함수 구현 시 사용

함수의 정의보다 더 많은 수의 전달인자가 전달된 경우, 해당 전달인자에 접근 가능

function addNum() {

  let sum = 0;

  for(let i = 0; i < arguments.length; i++) {
    sum += arguments[i];                  
  }
  
  return sum;
}

addNum(1,2)        // 3
addNum(1,2,3)      // 6
addNum(1,2,3,4,5)  // 15

 

arguments 객체의 속성

모든 함수 내에서 이용 가능한 지역변수

배열(Array) 형태의 객체이지만 배열의 아님 → 배열 메소드 사용 불가능 (length 메소드는 예외)

length 메소드를 통한 매개변수의 개수 확인

인덱스를 통한 조회 및 엘리먼트 재할당 가능

 

arguments 객체를 배열로 변환하기

var args = Array.prototype.slice.call(arguments);

 

 

반응형

댓글