1. arguments 객체 (전달받는 인수의 개수가 상관없는 객체)

arguments 객체를 이용하면, 함수로 전달된 인수의 총 개수를 확인하거나, 각각의 인수에도 바로 접근할 수 있다.

arguments 객체는 함수가 호출될 때 전달된 인수를 배열의 형태로 저장하고 있다


첫번째 인수는 arguments[0], 다음 인수는 arguments[1] 에 저장

인수의 총 개수는 arguments.length

 

ex)전달받는 인수의 개수에 상관없이 언제나 정상적인 계산을 수행하는 예제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/* 
    파라미터를 정의하지 않고 몇개의 파라미터를 받아도 다 처리할 수 있는 더하기 예제 
*/
function addNum() {
    var sum = 0;                                // 합을 저장할 변수 sum을 선언함.
    for(var i = 0; i < arguments.length; i++) { // 전달받은 인수의 총 수만큼 반복함.
        sum += arguments[i];                    // 전달받은 각각의 인수를 sum에 더함.
    }
    return sum;
}
addNum(123); // 6
addNum(12);    // 3
addNum(1);       // 1
addNum();        // 0
addNum(12345678910); // 55
cs




2. ECMAScript 6부터새롭게 정의된 매개변수 (explore지원안함)

디폴트 매개변수 (default parameter)


매개변수의 디폴트 값을 설정할 수 있음

1
2
3
4
5
6
function mul(a, = 1) { // 인수가 한 개만 전달되면 나머지 매개변수의 값을 언제나 1로 설정
    return a * b;
}
 
mul(34); // 12
mul(3);    // 3

s



나머지 매개변수 (rest parameter)


생략 접두사(...)를 이용하여 특정위치부터 마지막 인수까지를 한번에 지정 가능

1
2
3
4
5
6
7
8
9
10
11
// 첫 번째 인수를 변수 firstNum에 저장하고 나머지 인수들은 배열 restArgs에 저장함.
function sub(firstNum, ...restArgs
 
    for(var i = 0; i < restArgs.length; i++) {
        firstNum -= restArgs[i];
    }
    return firstNum;
}
 
sub(1023);    // 10 - 2 - 3 = 5
sub(10158); // 10 - 1 - 5 - 8 = -4
cs







+ Recent posts