profile image

L o a d i n g . . .

function 함수(매개변수){
	let output = 초깃값;
    처리내용
    return output
}

형태를 이용해서 많이 사용

 

 

//a부터 b까지 더하는 함수

function sumAll(a, b){
    let output = 0;
    for (let index = a ; index <= b; index++){
        output += index;
    } 
    return output;
}

console.log(`1부터 100까지의 합 ${sumAll(1,100)}`);

//a부터 b까지 곱하는 함수
function sumAll1(a, b){
    let output = 1;
    for (let index = a ; index <= b; index++){
        output *= index;
    } 
    return output;
}

console.log(`1부터 15까지의 곱 ${sumAll(1,15)}`);

곱하는 함수의 초기값은 0으로하면 결과도 0으로 나오니 주의

 

 

 

 


//최소값 구하는 함수

function min(array){
    let output = array[0];

    //output보다 작은 item이 있다면
    for(const item of array){
        if(output > item){
            //output의 값을 item으로 변경
            output = item
        }
    }
    return output;
}

const testArray = [52, 273, 32, 103, 275, 24, 57];
console.log(`${testArray} 중에서 최솟값 = ${min(testArray)}`);


//최대값 구하는 함수

function max(array){
    let output = array[0];

    //output보다 큰 item이 있다면
    for(const item of array){
        if(output < item){
            output = item
        };
    }
    return output;
}

const testArrayMax = [52, 273, 32, 103, 275, 24, 57];
console.log(`${testArray} 중에서 최대값 = ${max(testArray)}`);

 

 

 

 

 

 


가변 매개변수 함수 : 호출할 때 매개변수의 개수가 고정적이지 않은 함수

 

나머지 매개변수

- 자스에서 가변항함수를 표현할 때 사용. 나머지 매개변수 구문을 사용하면 함수가 정해지지 않은 수의 매개변수를 배열로 받을 수 있다.

- ... 마침표3개를 입력하여 매개변수들이 배열로 들어오게 한다.

 

 

 

 

//나머지 매개변수
function func(...items){
    console.log(items);
}

func(1,2);
func(1,2,3);
func(1,2,3,4);


//나머지 매개변수들의 합 출력
function sum(...theArgs){
    let total = 0;
    for( const arg of theArgs){
        total += arg;
    }
    return total;
}

console.log(sum(1,2,3));
console.log(sum(1,2,3,4));


//마지막 매개변수만 나머지 매개변수로 설정하기
function myFun(a,b, ...manyMoreArgs){
    console.log("a", a);
    console.log("b", b);
    console.log("manyMoreArgs", manyMoreArgs);
}

myFun("one", "two", "three", "four", "five", "six");

주의사항

- 함수 정의에는 하나의 나머지 매개변수만 존재할 수 있다. 

//...args, ...moreArgs 불가

- 나머지 매개변수는 반드시 함수 정의의 마지막 매개변수여야 한다.

// ...manyMoreArgs,a,b 불가

 

 

 

 

//나머지 매개변수
function func(...items){
    console.log(items);
}

func(1,2);
func(1,2,3);
func(1,2,3,4);


//나머지 매개변수들의 합 출력
function sum(...theArgs){
    let total = 0;
    for( const arg of theArgs){
        total += arg;
    }
    return total;
}

console.log(sum(1,2,3));
console.log(sum(1,2,3,4));


//마지막 매개변수만 나머지 매개변수로 설정하기
function myFun(a,b, ...manyMoreArgs){
    console.log("a", a);
    console.log("b", b);
    console.log("manyMoreArgs", manyMoreArgs);
}

myFun("one", "two", "three", "four", "five", "six");


//나머지 매개변수와 arguments 객체 차이
function sortRestArgs(...theArgs){
    let sortRestArgs = theArgs.sort();
    return sortRestArgs;
}

console.log(sortRestArgs(5,3,7,1));

function sortArguments(){
    let sortedArgs = arguments.sort();
    return sortedArgs;
}

//TypeError: arguments.sort is not a function 발생
 console.log(sortArguments(5,3,7,1)); 

//argument 객체에 Array 메서드를 사용하려면 우선 arguments객체를 배열로 변환해야함
function sortArguments(){
    let args = Array.from(arguments);
    let sortedArgs = args.sort();
    return sortedArgs;
}

console.log(sortArguments(5,3,7,1));

 

 

 

 

 

 

 

 

 

 

참고 :

- 혼자 공부하는 자바스크립트, 한빛미디어

- https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Functions/rest_parameters

 

나머지 매개변수 - JavaScript | MDN

나머지 매개변수 구문을 사용하면 함수가 정해지지 않은 수의 매개변수를 배열로 받을 수 있습니다. JavaScript에서 가변항 함수를 표현할 때 사용합니다.

developer.mozilla.org

 

반응형
복사했습니다!