
구조 분해 할당(destructuring assignment) : 객체나 배열을 변수로 '분해’할 수 있게 해주는 특별한 문법
let user = {
name: "John",
years: 30
};
이 name 프로퍼티의 값을 변수 name에 할당하고, years 프로퍼티의 값을 변수 age에 할당하며, isAdmin 프로퍼티의 값을 변수 isAdmin에 할당하고 isAdmin이라는 프로퍼티가 없으면 false를 할당하는 과제가 있었다.
let { name, age, isAdmin : false } = user;
무작정 생각한대로 작성했더니 isAdmin : false 부분에 빨간줄이 생겼다. 또한 age도 제대로 작동하지 않았다.
다시 공부해보니 객체 프로퍼티를 프로퍼티 키와 다른 이름을 가진 변수에 저장하기 위해선 콜론을 사용해야한다.
let { name, years:age, isAdmin : false } = user;
이러면 변수 age에 할당된다.
마지막 isAdmin에 대해서 제대로 짚지 않은 부분은, 구조 분해 할당은 변수로 분해하는 것이기 때문에, isAdmin은 엄연히 변수이므로 :이 아닌 =로 적어줘야하는 부분이었다.
let { name, years:age, isAdmin = false } = user;
문제가 해결되었다.