arguments
함수에는 arguments라는 객체가 존재한다.
함수 안에서 여러가지의 인자의 정보를 담고있는 객체이다.
사용법이 매우 배열과 유사하기 때문에 유사배열이라 볼 수 있다.
즉, 함수를 이용하는 사람이 매개변수에 집어 넣는 값을 의미한다.
function sum(){
//현재 인자 값이 존재하지 않는다. 그 이유는 인자가 들어오는 수를 예측 할 수 없기 때문이다.
//함수 안의 arguments객체 안에 존재하는 값들을 꺼낸 후 sum에 더해 return해주면 결과를 알 수 있다.
var _sum = 0;
for(var 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)); //sum안에 숫자들은 arguments이다.
//arguments라는 객체의 내부에는 사용자가 전달한 인자가 들어간다.sum의 값이 객체 arguments에 들어가게 된다.
상단의 코드에서 arguments가 하는 일
1. .length를 통해 객체를 포함하고있는 함수가 몇개의 인자를 가지고있는지 알 수 있다.
2. arguments대괄호 안에 index값을 전달하는 것을 통해 sum에 유입된 인자의 특정 자리수의 값을 알 수 있다.
인자와 매개변수의 차이
function a (arg) { }
a(1)일때 숫자 1은 인자라 부른다. 값이 저장되는 변수 arg를 매개변수라 부른다.
매개변수의 수
매개변수와 관련된 두가지 수가 있다.
1. 함수 .length (함수로 전달된 실제 인자의 수)
2. arguments.length (함수에 정의된 인자의 수)
function zero(){ //인자 0개
console.log(
'zero.length', zero.length,
'arguments', arguments.length
);
}
zero(); //매개변수 0개 //zero.length: 0 arguments:0
function one(arg1){//매개변수 arg1 1개
console.log(
'one.length', one.length, //1 출력( 힘수의 매개변수 )
'arguments', arguments.length //2 출력 (함수를 출력할때 몇개의 arguments를 전달했는가)
);
}
one('val1','val2'); //매개변수 2개 (val1, val2) //one.length: 1 arguments: 2
function two(arg1, arg2){//매개변수 2개
console.log(
'two.length', two.length,
'arguments', arguments.length
);
}
two('val1'); //매개변수 1개 // two.length 2 arguments 1
'Front-end > JavaScript' 카테고리의 다른 글
[JavaScript] this(함수,메소드,생성자) (0) | 2021.11.02 |
---|---|
[JavaScript ES6]전역객체 (0) | 2021.11.01 |
[JavaScript] 값으로서의 함수와 콜백 (0) | 2021.10.28 |
[JavaScript ES6]유효범위 (지역변수와 지역변수), 정적 유효범위 (0) | 2021.10.25 |
[JavaScript ES6]객체(Object) (0) | 2021.10.22 |