배열 또는 객체에 대해 iterable Object(열거 가능한 오브젝트)을
"개별" 요소로 분리한다.
[사용]
- 배열(Array) spread
let a = [1, 2]; let b = [3, 4]; let spread = [...a, ...b, 5]; console.log(spread); // [1, 2, 3, 4, 5]
- 객체(Object) Spread
let a = [{name:1}, {name:2}]; let b = [{name:3}, ...a]; console.log(b); // [ {name: 1}, {name: 2}, {name: 3} ]
Rest parameter와 spread 연산자
- rest parameter
: 하나 이상의 파라미터를 묶는 것
spread연산자(...)를 사용하여 값을 묶어서 함수나 객체로 전달할 때 사용function hi(...rest){ console.log(rest) } let num = [1,2,3]; hi(...num); // [1, 2, 3]
- spread 연산자
: 오브젝트를 하나 씩 전개 하는 것
rest parameter와 논리적으로 반대의 과정
배열이나 객체의 속성을 해체하여 그 값을 개별 변수에 담을 수 있게 하는 자바스크립트 표현식(expression)
[사용]
- 많이 사용하는 방식
let object = { name: "kjw", pw: "1234"}; const { name, pw } = object; console.log(name); // kjw console.log(pw); // 1234
- 함수의 파라미터에 사용
const object = { a: 1, b: 2 }; function print({ a, b }) { console.log(a); // 1 console.log(b); // 2 } print(object);
- default값 지정
let object = { name: "kjw"}; const { name, pw="d5678" } = object; // pw의 default값 지정 console.log(name); // kjw console.log(pw); // d5678
- 다른 변수로 받기
/* 객체(object) 생성 */ let object = { name: "kjw", pw: "1234"}; /* 구조 분해 할당 사용 */ const { name : n , pw : p } = object; /* 출력 */ console.log(n); // kjw console.log(p); // 1234