간지나제 2021. 2. 23. 22:29

javascript는 함수 정의시 매개변수에 대한 형식을 명시하지 않는다.

함수를 호출할 때 정의된 매개변수와 전달인자의 개수가 일치하지 않더라도 호출이 가능하다.

function sum (x, y, z) {
    return x+y+z;
} 

sum(10); // NaN

sum(10, 20); // NaN

sum(10, 20, 30); // 60
function sum (x, y, z) {
    let result = 0;
    for(let i=0; i<arguments.length; i++) {
    result += arguments[i];  
    }
}

함수의 프로퍼티인 arguments를 이용하면 위와 같이 호출해도 NaN이 아닌 원하는 결과를 얻을 수 있다.

function minus(totalValue, ...minusValues) {
    for(let value of minusValues) {
        ...
    }
}

minusValues와 같은 매개변수를 rest parameter라고 하고 매개변수 목록 마지막에 선언해야한다.

ES6부터 적용되었으며 임의의 수를 갖는 매개변수를 선언할 수 있다.