반응형

가변인자함수

가변 인자 함수는 매개변수의 개수가 변할 수 있는 함수입니다. 자바스크립트는 매개변수의 개수를 정의된 것과 다르게 사용해도 괜찮지만, 여기서 말하는 가변 인자 함수는 매개변수를 선언된 형태와 다르게 사용했을 때, 매개변수를 모두 활용하는 함수를 뜻합니다.

:: 이전에 봤던 Array()함수가 가변 인자 함수의 예입니다. Array함수 바로가기

 

sumAll()함수 형태 ( 매개변수로 입력된 숫자를 모두 더하는 함수 )

function sumAll() {

}

 

sumAll()함수 예

function sumAll() {
    alert(typeof(arguments) + ' : ' + arguments.length);
}

sumAll(1, 2, 3, 4, 5, 6, 7, 8, 9); // object : 9

arguments변수는 자바스크립트의 모든 함수 내부에 기본적으로 존재합니다.

:: arguments는 매개변수의 배열입니다.

배열은 객체 자료형이기 때문에 Object를 출력하고, 함수를 호출할 때 9개의 매개변수를 입력했기 때문에 arguments.length의 길이는 9를 출력합니다.

 

sumAll() 함수 예 ( arguments객체를 사용한 가변 인자 함수 )

function sumAll() {
    var output = 0;
    for(var i = 0; i < arguments.length; i++) {
        output += arguments[i];
    }
    return output;
}

alert(sumAll(1, 2, 3, 4, 5, 6, 7, 8, 9)); // 45

 


 

리턴 값

return키워드는 함수가 실행되는 도중에 함수를 호출한 곳으로 돌아가라는 의미입니다. 따라서 return키워드를 사용하면 값을 지정하지 않아도 함수를 호출한 곳으로 돌아갑니다.

 

return 키워드 예

function returnFunc() {
    alert('A'); // 실행됨
    return
    alert('B'); // 실행되지 않음
}

returnFunc();

return키워드를 alert('B')이전에 사용했기 때문에 실행되지 않고 함수가 종료됩니다. 따라서 A만 출력되는 것을 확인할 수 있습니다.

 

만약 아무 값도 받지않고 리턴하면 아무값도 들어있지 않기 때문에 아래처럼 'undefined'를 출력하게 됩니다.

 

아무값도 받지 않고 return했을 때 예

function returnFunc() {
    return
    alert('A'); // 실행됨
    alert('B'); // 실행되지 않음
}

var returnTest = returnFunc();
console.log(typeof(returnTest) + ' : ' + returnTest); // undefined : undefined

위처럼 아무값도 없기 때문에 undefined를 출력합니다.

 

반응형

+ Recent posts