[JS]14強パラメータ


arguments


論争とは何ですか.
:定義された名前または属性を持つオブジェクト.関数で使用可能
:配列と似ていますが、配列ではありません.(類似アレイ)
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.パラメータ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:関数に渡される実際のパラメータ数