배열이나 객체의 속성을 해체하여 그 값을 개별 변수에 담을 수 있게 하는 JavaScript *표현식
* 표현식이란 값으로 귀결되는 임의의 유효한 코드 단위
비구조화할당이라고도 함
let {prop: varName = default, ...rest} = object
object
의 속성 prop
의 값이 변수 varName
에 할당. prop
없는 경우 default
값이 할당됨
object
의 나머지 속성들이 객체 rest
에 복사됨
let [item1 = default, item2, ...rest] = array
array
요소들이 순서대로 item1
, item2
에 할당. 할당할 값이 없는 경우 default
값이 할당됨
array
의 나머지 요소들이 배열 rest
에 복사됨
함수 매개변수에서 구조 분해 할당을 사용하는 경우,
null
값으로 명시할 필요 없음showMenu()
이렇게 인수 없이 호출해도 무방showMenu()
처럼 인수 없이 호출 가능let options = {
title: "My menu",
items: ["Item1", "Item2"]
};
showMenu(options);
// 결과: `My menu 100 200`
function showMenu({ title = "Menu", width = 100, height = 200 } = {}) {
alert( `${title} ${width} ${height}` );
}