let x = [1,2,3,4,5];
//기본 변수 할당
let [y, z, p] = x;
y; // 1
z; // 2
p; // 3
// 선언에서 분리한 할당
let a,b;
[a, b] = [10, 20];
a; // 10
b; // 20
var a, b, rest;
[a, b] = [10, 20];
console.log(a); // 10
console.log(b); // 20
[a, b, ...rest] = [10, 20, 30, 40, 50];
console.log(a); // 10
console.log(b); // 20
console.log(rest); // [30, 40, 50]
var a, b;
[a=5, b=7] = [1];
console.log(a); // a에는 1이 할당되어 교체된 값 리턴
console.log(b); // undefined므로 기존 할당된 7 리턴
var a = 1;
var b = 3;
[a, b] = [b, a];
console.log(a); // 3
console.log(b); // 1
function f() {
return [1, 2];
}
var a, b;
[a, b] = f();
console.log(a); // 1
console.log(b); // 2
var o = {p: 42, q: true};
var {p, q} = o;
console.log(p); // 42
console.log(q); // true
// 할당 변수와 키가 동일하지 않으면 undefined를 뱉는다
let {a, b} = o
console.log(a); // undefined
console.log(b); // undefined
// 선언없는 할당
({ a, b } = { a: 10, b: 20 });
console.log(a); // 10
console.log(b); // 20
({a, b, ...rest} = {a: 10, b: 20, c: 30, d: 40});
console.log(a); // 10
console.log(b); // 20
console.log(rest); // {c: 30, d: 40}
const student = { name: '최초보', major: '물리학과', lesson: '양자역학', grade: 'B+' }
function getSummary({name, lesson: course, grade }){
return `${name}님은 ${grade}의 성적으로 ${course}을 수강했습니다`
}
getSummary(student);
// "최초보님은 B+의 성적으로 양자역학을 수강했습니다"
★ 중첩된 객체 및 배열의 구조 분해
★ for of 반복문과 구조 분해
★ 함수 매개변수로 전달된 객체에서 필드 해체하기
그외 참조사이트
모던JS