본문 바로가기

Dev.FrontEnd/JavaScript

10. 자바스크립트 내장객체 - arguments

Chapter 10. 자바스크립트의 내장 객체 - argument
자바스크립트에서는 함수를 호출할 때
함수 형식에 맞춰 인자를 넘기지 않더라도 에러가 발생하지 않는다.
정의된 함수의 인자보다 적게 인자를 넘겨주면
넘겨지지 않은 인자에 대해서는 undefined 값이 할당되고
정의된 함수의 인자보다 많게 인자를 넘겨주게 되면
초과된 인수는 가볍게 무시된다!

자바스크립트의 이러한 특성 때문에
함수 코드를 작성할 때, 런타임 시에 호출된 인자의 개수를 확인하고
이에 따라 동작을 다르게 해줘야 할 경우가 있다.


code>
1
2
3
4
5
6
7
function func (arg1, arg2){
     console.log(arg1, arg2);
}
func( );      // > undefined undefined
func(1);      // > 1 undefined
func(1,2);    // > 1 2
func(1,2,3);  // > 1 2
cs

이를 가능하게 하는 것이 arguments 객체다 

arguments 객체는 함수를 호출할 때 넘긴 인자들이 배열 형태로 저장된 객체를 의미한다
이 객체는 실제 배열이 아닌 유사 배열 객체이다.
이 arguments 객체를 잘 활용하면 유연한 함수를 만들 수 있다.

code>
1
2
3
4
5
6
7
8
9
10
function sum( ){
     var result = 0;
     for(var i=0; i<arguments.legth; i++){
          result += arguments[i];
     }
     return result;
}
 
console.log(sum(1,2,3));     // > 6
console.log(sum(1,2,3,4,5,6,7,8,9)); // > 45
cs