rest 매개변수
rest 매개변수는 모든 요소를 배열로 모은 것이며, 여러 개의 함수 인수를 전달하는 경우 사용됩니다.
function printNumber(one, two, ...rest) {
console.log(one);
console.log(two);
console.log(rest);
}
printNumber(1, 2, 3, 4, 5, 6, 7);
실행 결과
위 예제에서 인수 one
은 1을 참조하며 two
는 2를 참조하며, 나머지 매개변수인 ...rest
는 1과 2 이후에 전달된 모든 인수(3, 4, 5, 6, 7)를 참조합니다.
다음은 rest 매개변수를 구조 분해(destructuring)에 사용하는 예제입니다.
let arrNumber = [1, 2, 3, 4, 5];
let [firstNumber, ...restNumber] = arrNumber;
console.log(firstNumber);
console.log(restNumber);
실행 결과
JavaScript의 구조 분해 기능을 사용하여 배열 arrNumber
의 첫 번째 요소인 1은 변수 firstNumber
에 할당되었으며, 나머지 요소들은 restNumber
에 할당되었습니다.
Spread 연산자
rest 매개변수는 여러 개의 값을 하나로 압축합니다. Spread 연산자는 rest 매개변수와는 반대로 압축되어 있는 값을 단일 요소로 압축을 푸는 기능을 수행합니다.
function sumFunc(firstParam, secondParam) {
return firstParam + secondParam;
}
let arrNumber = [10, 20];
let sumValue = sumFunc(...arrNumber);
console.log(sumValue); // 30
위 예제에서 sumFunc()
함수를 호출할 때, Spread 연산자를 사용합니다. 배열 arrNumber
는 10과 20 두 개의 요소를 가지고 있으며, Spread 연산자로 배열로 단일 요소로 압축을 해제합니다.
코드 let sumVale = sumFunc(...arrNumber);
은 다음과 같이 동작됩니다.
let sumValue = sumFunc(10, 20);
Spread 연산자는 다음 예제처럼 배열을 다른 배열로 복사하거나 배열에 값을 추가하는 용도로 사용할 수 있습니다.
let arrNumber = [1, 2, 3];
// 배열 복사
let copyArrNumber = [...arrNumber];
// 배열에 값 추가
let addArrNumber = [...arrNumber, 4, 5, 6];
console.log(copyArrNumber);
console.log(addArrNumber);
실행 결과
정리
- 함수 매개변수에 점(...)을 사용하는 경우 rest 매개변수입니다.
- rest 매개변수는 나머지 모든 요소들을 배열로 수집합니다.
- 함수 호출에 점(...)을 사용하는 경우 Spread 연산자입니다.
- Spread 연산자는 배열과 같이 반복 가능한 객체를 단일 요소로 압축 해제합니다.
반응형
'JavaScript > JavaScript 문법' 카테고리의 다른 글
[JavaScript]try-catch로 잡을 수 없는 예외 (0) | 2021.12.20 |
---|---|
[JavaScript]코드 실행 시간 측정 방법 (3) | 2021.12.17 |
[JavaScript]객체 변경을 방지하는 방법 (0) | 2021.12.06 |
[JavaScript]객체(Object)의 freeze(), seal() 함수의 차이점 (0) | 2021.12.06 |
[JavaScript]객체(Object)가 비어있는지 체크하는 방법 (2) | 2021.12.02 |
댓글