01. Spread 연산자 - 스프레드(Spread) 연산자와 Rest  파라미터  


iterable object의 element를 하나씩 분리하여 전개한다.
iterable 객체는 반복 객체로써 객체의 원소에 하나씩 차례로 접근 가능하다.

' ... ' 점 세개로 시작해서 뒤에 이터러블 오브젝트를 써주면 된다.
[...iterableObj]
function(...iterableObj){ }

예시
let first = [1,2];
let last = [9,10];
let result = [...first, 3,4,5,6,7,8, ...last];

console.log(result);

결과 값
1,2,3,4,5,6,7,8,9,10

...first를 전개하여 1,2의 값을 result의 배열에 넣어준다.
그 후 3~8까지의 숫자가 배열에 들어있고 ...last를 전개하여 9,10을 result의 배열에 넣어줌으로써
1~10까지의 결과 값이 나온다.
(전개 시 result의 length 값은 10, 전개가 안되면 8)

문자열 전개 시에는 string 오브젝트가 iterable 오브젝트 이므로 쓸 수 없다.
let spreadObj = [...'okayoon'];

console.log(spreadObj);

결과 값
['o','k','y','o','o','n']

파라미터로 넘길 때 (spread parameter)
const number = [1,2,3];
getNum(...number);

function getNum(num1,num2,num3){
    console.log(num1, num2, num3);
}

결과 값
num1 = 1
num2 = 2
num3 = 3
함수 호출 전에 ...number를 전개한 후 파라미터로 전달하기 때문에 결과 값과 같은 형태가 된다.

호출하는 함수의 파라미터 값이 분리된 형태를 spread 파라미터라고 한다.


+ Recent posts