JS 함수 업그레이드 하기(default parameter / arguments)

임효진·2022년 10월 16일
0

함수의 디폴트 파라미터 넣기

함수 생성 시, parameter 값을 실수로 안넣을 경우, 기본값을 줄 수 있습니다.

let plus = function(a, b = 10) {
//함수 매개변수 칸에 디폴트 값을 설정하면 됩니다.//만약 함수 호출할때 b를 내가 입력 안하면 기본적으로 10을 넣어주세요 ~ 하는 겁니다.return a+b;
}
console.log(plus(1));//11//그럼 만약 매개변수를 까먹지 않고 잘 넣어줬다면 ?console.log(plus(1, 2));//3//디폴트 값은 매개변수를 잊었을때만 처리됩니다//그럼 파라미터에 아무것도 안넣는다면??console.log(plus());//NaN 낫 어 넘버가 뜨네요//응용으로 연산도 가능합니다let plus = function(a, b = 2 * a) {

    return a+b;
}

//함수도 가능합니다.function 함수(){
    return 2;
}
let plus = function(a, b = 함수()) {

    return a+b;
}

함수의 arguments

모든 매개변수를 한 번에 다루고 싶은 경우에 arguments를 사용합니다.

function arr(a,b,c) {
    console.log(arguments);//[Arguments] { '0': 1, '1': 2, '2': 3 }console.log(arguments[0]);//1console.log(arguments[1]);//2console.log(arguments[2]);//3
}
arr(1,2,3);

간단히 arguments는 arr(1,2,3)을 파라미터를 전부 담고 있는 array입니다.

그럼 반복문으로도 돌릴 수 있지 않을까요?

function arr(a,b,c) {
    for(let i = 0;i < arguments.length;i++) {
        console.log(arguments[i]);//1 2 3
    }
}
arr(1,2,3);

arguments를 옛날 문법입니다.

ES6부터 더 쉬운 문법이 등장했는데 바로 Rest Parameter입니다.

function forRest(...아무거나써도됨) {
    console.log(아무거나써도됨);
}

forRest(1,2,3,4,5,6,7,8,9,10);
//결과는 아래처럼// [// 1, 2, 3, 4,  5,// 6, 7, 8, 9, 10// ]

arguments랑 매우 유사한데, 차이점은 arguments는 모든 파라미터를 []에 담아주고

rest 파라미터는 매개변수 전달하고 남은 값들을 []에 담아 보관해줍니다, 아래를 봅시다.

function forRest(a, b,...아무거나써도됨) {
    console.log(아무거나써도됨);
}

forRest(1,2,3,4,5,6,7,8,9,10);
// [//     3, 4, 5,  6,//     7, 8, 9, 10//   ]

즉 조금 더 유연하게 사용할 수 있습니다.

다만 주의해야할게 있습니다

1)...rest는 매개변수 가장 마지막에 써야합니다. function(a, b, ...rest) <- 이런식으로

2)...rest는 반복해서 사용 불가합니다 function(a, b, ...rest, ...rest2)<-이런거 안됩니다.

profile
프론트 요정임

0개의 댓글

관련 채용 정보