> For the complete documentation index, see [llms.txt](https://westsilver.gitbook.io/study-script/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://westsilver.gitbook.io/study-script/javascript/jacascript-start/undefined-3/arguments.md).

# arguments

## 1. arguments 변수

> 함수안에서 사용할 수 있도록 그 이름이나 특성이 약속되어 있는 일종의 **배열**

```javascript
function sum(){ //매개변수가 없음
    var i, _sum = 0;    
    for(i = 0; i < arguments.length; i++){
        document.write(i+' : '+arguments[i]+'<br />');
        _sum += arguments[i];
    }   
    return _sum;
}
document.write('result : ' + sum(1,2,3,4)); 
//0 : 1
//1 : 2
//2 : 3
//3 : 4
//result : 10

//인자의 값이 몇개가 들어올지 모르기 때문에, 인자를 정해놓지 않음
```

## 2. 매개변수의 수

{% tabs %}
{% tab title="함수.length" %}

#### 함수에 **정의된 인자의 수**

{% endtab %}

{% tab title="arguments.length" %}

#### 함수로 **전달된 실제 인자의 수**

{% endtab %}
{% endtabs %}

```javascript
function zero(){
    console.log(
        'zero.length', zero.length,
        'arguments', arguments.length
    );
}
zero(); // zero.length 0 arguments 0 

function one(arg1){
    console.log(
        'one.length', one.length,
        'arguments', arguments.length
    );
}
one('val1', 'val2');  // one.length 1 arguments 2 
 
function two(arg1, arg2){
    console.log(
        'two.length', two.length,
        'arguments', arguments.length
    );
}
two('val1');  // two.length 2 arguments 1
```
