Spread Operator

배열에 붙인다면

var array = ['hello', 'world'];
console.log(...array);

‘hello’, ‘world’로 출력된다.

문자에 붙인다면.

var word = 'hello';
console.log(...word);

h e l l o . 각 알파벳이 한자씩 출력된다.

문자도 배열처럼 인덱싱이 가능하다.

var word = 'hello';
console.log(word[1]);  // e

사용예시

var a = [1, 2, 3];
var b = [4, 5];
var c = [...a, ...b];
var a = [1, 2, 3];
var b = a;

a[3] = 4;

이때 b=a 로 선언하면 값을 공유하는 상황이 생겨 a값만 변경하더라도 b도 같이 변하게된다.

var a = [1, 2, 3];
var b = [...a];

a[3] = 4;

spread operator를 이용하면 독립적으로 값을 갖는다.

오브젝트를 합칠때도 사용할 수 있다.

var o1 = {a:1, b:2};
var o2 = {...o1, c:3};

o1의 값들이 o2에 포함되어있다.

함수에서도 사용할 수 있다.

function add(a, b, c) {
	console.log(a + b + c);
}

var array = [10, 20, 30];

add(...array);