[JS] 14_04강 arguments

정수연·2022년 4월 14일
0

arguments

argument란?
: 함수 내부에서 사용할 수 있도록 그 이름이나 특성이 약속되어 있는 객체
: 배열과 비슷하지만, 배열은 아니다! (유사배열)

ex1) arguments[0] 
// : 함수로 전달된 첫 번째 인자를 알 수있다.
ex2) arguments.length 
// : 인자의 개수를 알 수 있다.
function sum(){
    var i, _sum = 0;    
    for(i = 0; i < arguments.length; i++){
        document.write(i+' : '+arguments[i]+'<br />');
        _sum += arguments[i];
    }   
    return _sum;
}
// JS는 유연하므로, 인자의 값을 아무렇게나 지정해도 에러 발생X
document.write('result : ' + sum(1,2,3,4)); // 10
/* 디버깅
arguments.length = 4
⒈_sum = arguments[1]
⒉_sum = arguments[1] + arguments[2]
⒊_sum = arguments[1] + arguments[2] + arguments[3]
⒋_sum = arguments[1] + arguments[2] + + arguments[3] + arguments[4] = 10
*/

cf. 매개변수(parameter) vs 인자(arguments)

// 매개변수 vs 인자 
// (보통은 같은 의미로 쓰이지만) 엄격히 구분해보자!
function a(arg) {...} // a : 매개변수
a(1); // 1 : 인자

매개변수의 수

function one(arg1){
    console.log(
        'one.length', one.length, // 1
        'arguments', arguments.length // 2
    );
}
one(val1, val2);
  • 함수명.length : 함수에 정의된 인자 수
  • arguments.length : 함수로 전달된 실제 인자의 수

0개의 댓글