티스토리 뷰

Dev./javascript

[JS] 가변인자 함수

인쥭 2021. 4. 5. 17:11
반응형

참고. 

 

전개 구문 - JavaScript | MDN

전개 구문 전개 구문을 사용하면 배열이나 문자열과 같이 반복 가능한 문자를 0개 이상의 인수 (함수로 호출할 경우) 또는 요소 (배열 리터럴의 경우)로 확장하여, 0개 이상의 키-값의 쌍으로 객

developer.mozilla.org

전개 구문(spread syntax)을 활용하면 쉽다.

function spreadFunc(...args) {
    console.log(args);
}

spreadFunc();
spreadFunc(1);
spreadFunc(1, 2, 3);
spreadFunc('a', 1, {});

/* 실행 결과
[]
[ 1 ]
[ 1, 2, 3 ]
[ 'a', 1, {} ]
*/

매개 변수는 전개 구문과 일반 변수를 혼용할 수 있다.

function spreadFunc(num1, num2, ...args) {
    console.log(num1);
    console.log(num2);
    console.log(args);
    console.log('\n');
}

spreadFunc();
spreadFunc(1);
spreadFunc(1, 2, 3, 'a', 1, {});

/* 실행 결과
undefined
undefined
[]


1
undefined
[]


1
2
[ 3, 'a', 1, {} ]
*/

그러나 전개 구문은 그 특성상 반드시 매개변수 마지막에 위치하여야만 한다.

function spreadFunc(...args, num1, num2) {
    console.log(num1);
    console.log(num2);
    console.log(args);
    console.log('\n');
}

spreadFunc();
spreadFunc(1);
spreadFunc(1, 2, 3, 'a', 1, {});

/* 실행 결과
function spreadFunc(...args, num1, num2) {
                           ^
SyntaxError: Rest parameter must be last formal parameter
... 생략

function spreadFunc(num1, ...args, num2) {} 도 마찬가지로 SyntaxError가 반환된다.
*/

간단한 테스트는 아래에서 가능!

 

Run JavaScript in the browser - glot.io

console.log("Hello World!");

glot.io

 

'Dev. > javascript' 카테고리의 다른 글

[JS] primitive value  (0) 2021.04.20
[JS] jQuery ajax와 async / await  (0) 2021.04.12
[JS] WebStorm에 Airbnb style 적용  (0) 2021.04.05
[JS] 구조 분해 할당을 이용한 변수 초기화  (0) 2021.04.05
[JS] 문자열을 배열로 변환  (0) 2021.04.01
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함