구조 분해 할당
객체 구조 분해 할당
① 배열이나 객체의 속성을 분해
② 위 순서에서 분해한 값을 각각 변수에 담아 사용할 수 있는 것
→ 객체.속성으로 사용하는 번거로움이 보임
→ 객체를 각각 불러올 수 있음
→ 바로 값 대입도 가능
→ 새로운 변수명으로 바꿔서 쓰는 것도 가능



→ 1 4 0 출력
→ 중첩 객체에서도 지금까지 했던 방법과 마찬가지로 사용하면 됨 단 중첩되어 있는 b 객체의 사용 방법은 위와 같이 [{}] 형태로 적어줘야 함
for(조건 of 오브젝트){
}
중첩 구조 객체 
지금까지 한 것들을 토대로 위 객체에서 팀 이름(team)과 리더 이름(leader)을 반복문을 활용해 출력해 보면 아래와 같이 할 수 있음 
→ for(조건)에 객체의 이름을 변경을 진행하고 있음
→ 지금까지 하던 형태로 바꾸면 아래와 같음
const {team:teamName, members:{leader:leadername}} = contest;
✔️ React에서 props 전달 시 자주 사용되는 구조 분해 할당

→ 함수 printKoreanName에 member 객체를 전달하면 세 개의 값이 전달됨
→ 이때 printKoreanName 함수의 역할은 koreanName만 출력하는 것 따라서 파라미터로 koreanName만 받고 그 값을 리턴하고 있음

→ 만약 firstName만 출력하고 싶다면?

중괄호를 통해 japanName이라는 객체 안에 있는 firstName이라는 객체를 가져오라는 뜻으로 해석하면 됨

사용 객체 
function으로 받은 값을 통해 구조 분해 할당을 하겠다는 의미 
→ choice로 받은 지정 값(a, b, c 중 하나)을 userName으로 변경
→ 만약 a, b, c 중 값 외의 값이 들어온다면 Unknown 출력 (디폴트 값을 지정해 준 셈 == 안 적으면 undefined 출력)
함수 호출 
결과
installHook.js:1 운동
installHook.js:1 애니 보기
installHook.js:1 영화 보기
installHook.js:1 unKnown

→ 가변 길이를 다 수용하기 위해 ...rest(변수O)를 사용 (값을 추가해도 전부 출력됨)
→ {}로 감싸면 객체 타입으로, []로 감싸면 배열 타입으로 선언됨






① import React, { Component } from 'react';
→ Component라는 이름으로 객체로 사용하겠다는 뜻
② useState()
→ 데이터의 상태를 관리하는 훅의 종류 중 하나로 초기 값을 설정할 수 있음
const [a, b] = useState({
// 초기 값 설정 - 배열 예시임
name: '',
age:
});
const [name, age] = a;
참고 강의: ITGO React JS Part2