let {prop : varName = default, ...rest} = object
object의 프로퍼티 prop
의 값은 변수 varName
에 할당되는데, object에 prop이 없으면 default
가 varName
에 할당됩니다. 연결할 변수가 없는 나머지 프로퍼티들은 객체 rest
에 복사됩니다.let [item1 = default, item2, ...rest] = array
array의 첫 번째 요소는 item1
에, 두 번째 요소는 변수 item2
에 할당되고, 이어지는 나머지 요소들은 배열 rest
저장됩니다.→ 1번
/* 구조 분해 할당
아래와 같은 객체가 있다고 가정해봅시다.
let user = {
name: "John",
years: 30
};
구조 분해 할당을 사용해 아래 미션을 수행해 보세요.
name 프로퍼티의 값을 변수 name에 할당하세요.
years 프로퍼티의 값을 변수 age에 할당하세요.
isAdmin 프로퍼티의 값을 변수 isAdmin에 할당하세요. isAdmin이라는 프로퍼티가 없으면 false를 할당하세요.
미션을 달성하면 아래 예시를 제대로 실행할 수 있게 됩니다.
let user = { name: "John", years: 30 };
// 할당 연산자 좌측에 답안을 작성하시면 되겠죠?
*/
// -------------------------------------------------------
// 해답
let user = {
name: "John",
years: 30
};
let {name, years: age, isAdmin = false} = user;
console.log( name ); // John
console.log( age ); // 30
console.log( isAdmin ); // false
아무리 배열하고, 객체를 자주 사용한다고 하지만, 구조 분해 할당은 실무에서 잘 쓸 것 같지는 않다.
우선, 프로그래밍을 돌리다보면 DB를 사용할 수밖에 없는게 대다수인데, DB에 다녀온 결과가 얼마나 많을지 모르는 상황 속에서 구조 분해 할당을 시전…한다?
개인적으로는 말이 안된다고 생각한다.