Destructuring Assignment
구조 분해 할당 구문은 배열이나 객체의 속성을 해체하여 그 값을 개별 변수에 담을 수 있게 하는 표현식이다. 배열 또는 객체 리터럴에서 필요한 값만 추출해 변수에 할당하거나 반환할 때 유용하다.
배열 구조 분해
// 기본 변수 할당
var foo = ["one", "two", "three"];
var [red, yellow, green] = foo;
console.log(red); //one
console.log(green); //three
// 기본값
// 변수에 기본 값을 할당하면 분해한 값이 undefined일 때 그 값을 대신 사용함
var a, b;
[a = 5, b = 7] = [1];
console.log(a); //1
console.log(b); //7
객체 구조 분해
// 기본할당
var o = { p: 42, q: true };
var { p, q } = o;
console.log(p); //42
console.log(q); // true
//중첩된 객체 및 배열의 구조 분해
var metadata = {
title: "Scratchpad",
translations:[
{
locale: "de",
localization_tags: [ ],
last_edit: "2014-04-14T08:43:37",
url: "/de/docs/Tools/Scratchpad",
title: "JavaScript-Umgebung"
}
url: "/en-US/docs/Tools/Scratchpad"
]
};
var { title: englishTitle, translations: [{ title: localeTitle }] } = metadata;
console.log(englishTitle); // "ScratchPad"
console.log(localeTitle); // "JavaScript-Umgebung"
위와 같이 구조 분해 문법을 사용하면 객체에서 필요한 정보만 보다 간결하게 가져올 수 있다.