구조 분해 할당
- 배열이나 객체의 속성을 해체해 그 값을 개별 변수에 담는 것
- 배열 구조 분해
- 객체 구조 분해
배열 구조 분해
- const [변수] = 배열;
- 각 변수에 배열의 인덱스 순으로 값 대응
- 구조 분해 시, 변수의 값이 undefined일 때, 기본값 할당 가능
- 구조 분해 없이 두 변수의 값 교환도 가능
let lists = ["apple", "grape"];
[item1, item2, item3 = "peach"] = lists;
let x =1, y =3;
[x, y] = [y, x]
객체 구조 분해
- const {변수} = 객체;
- 객체 안의 속성을 변수명으로 사용
- : 을 이용해 새 변수명을 선언하고, 원래의 값을 새 변수명에 할당할 수 있음
let obj = {
key1: "one",
key2 : "two"
};
let { key1: newKey1, key2, key3 = "three" } = obj;
... 연산자
spread
const a = [1, 2, 3];
const b = [4, 5];
const spread = [...a, ...b];
rest
const values = [10, 20, 30];
function get(a, ...rest) {
console.log(rest);
}
spread vs rest
- spread는 호출하는 함수의 파라미터에 사용
- rest는 호출받는 함수의 파라미터에 사용. 호출하는 함수의 파라미터 순서에 맞춰 값을 설정 후, 남은 파라미터 값을 배열로 설정