스프레드(spread, ...) 연산자는 배열과 같은 이터러블(iterable) 객체를 0개 이상의 인수가 필요한 자리에 펼쳐서(expand) 전달할 수 있게 해주는 ES6 문법입니다. 이를 활용하면 여러 개의 매개변수를 받는 함수에 배열의 요소들을 개별 인수로 한 번에 넘길 수 있습니다.
즉, add(num1, num2, num3, num4, num5)처럼 다섯 개의 매개변수를 필요로 하는 함수가 있다면, 길이가 5인 배열 앞에 스프레드 연산자만 붙여 add(...arr) 형태로 호출하면 됩니다.
예제 코드
다음은 JavaScript에서 배열에 스프레드 연산자를 적용한 예제입니다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
body {
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
}
.result,
.sample {
font-size: 20px;
font-weight: 500;
color: blueviolet;
}
.sample {
color: red;
}
</style>
</head>
<body>
<h1>Spread operator for arrays JavaScript</h1>
<div class="sample">[22,55,11,19,55]</div>
<div class="result"></div>
<br />
<button class="Btn">CLICK HERE</button>
<h3>Click on the above button to call the add function and pass the above
array as parameter</h3>
<script>
let BtnEle = document.querySelector(".Btn");
let resEle = document.querySelector(".result");
function add(num1, num2, num3, num4, num5) {
return num1 + num2 + num3 + num4 + num5;
}
let arr = [22, 55, 11, 19, 55];
BtnEle.addEventListener("click", (event) => {
resEle.innerHTML = "The sum of the above array = " + add(...arr);
});
</script>
</body>
</html>실행 결과
페이지를 실행하면 아래와 같이 배열 [22, 55, 11, 19, 55]이 화면에 표시됩니다.

'CLICK HERE' 버튼을 클릭하면 −

버튼 클릭 시 add(...arr)가 호출되면서 배열의 각 요소가 개별 인수로 전달되고, 그 합계인 162(22 + 55 + 11 + 19 + 55)가 화면에 출력됩니다.
스프레드 연산자의 주요 특징
- 함수 호출: 배열의 요소들을 개별 인수로 펼쳐 전달할 수 있습니다.
- 배열 복사 및 병합:
[...arr1, ...arr2]처럼 기존 배열을 변경하지 않고 새로운 배열을 만들 수 있습니다. - 나머지 매개변수(rest parameter)와의 차이: 스프레드는 배열을 개별 값으로 풀어주는 반면, 나머지 매개변수(
function f(...args))는 개별 인수들을 하나의 배열로 모읍니다.
이처럼 스프레드 연산자를 활용하면 가변적인 개수의 인수를 다루는 코드를 훨씬 간결하고 직관적으로 작성할 수 있습니다.