비구조화 할당(Destructuring Assignment)이란 배열이나 객체의 속성을 해체하여
그 값을 개별 변수에 담을 수 있게 하는 ECMAScript6(2015)에 추가된 자바스크립트 표현식(expression)이다.
BEFORE 비구조화 할당
원소에 별명(변수)를 붙여 따로 불러내고 싶다. (너만💛)
근데 걸림돌이 있었으니.... 변수 선언을 거쳐야 불러낼 수 있다는 거다. 그래서 다이렉트로 부를 수 있게 비구조화 할당이 나왔다.
AFTER 비구조화 할당
변수 선언과 객체(혹은 배열) 선언을 한방에 할 수 있다. (이젠 우리 둘이 다이렉트로 볼수있어💛)
배열일 때는
const [ 변, 수, 이, 름 ] 으로 = [
"선언해주면", "순서대로", "배열원소와", "매칭된다."
]
객체일 때는
- cosnt { 변수이름 } 으로 = {
객체를 바로 선언해주면 끝!
}
- 변수선언 된 mycar은 객체 안의 key이름인 mycar과 같도록 매칭되야 한다.
- 3점 표기법
{ …변수뭉텅이 } 들은 3점 표기법을 적용하여 ( 변수하나와, ...나머지뭉텅이들 } 로 분리하여 선언해줄수도 있다.
- 객체의 복사
객체의 복사도 3점 표기법을 적용할 수 있다. 무엇보다 강력한 점은 복사와 함께 새로운 값을 할당할 수 있다는 점이다.
let 복사본 = {
… 원본객체,
바뀌는 값만: 따로명시
}
console.log(state); // {name: "foo", birth: "1995-01-01", age: 26}
- 함수에 적용
함수 파라미터API 응답값을 처리하는데에 유용하게 사용된다.
실무 예시
(updated at 04/13/22)
// 유저타입정보가 들어있다. user.info.userTypes 와 같은 표현이다.
const { userTypes } = user.info; // 출력시 ['admin', 'seller', 'customer'] 가 나온다
// 객체에 위의 값을 넣어주자
cosnt myUser = {
info : {
myUserType : [...(userTypes || [])] // 이런식으로 표현해서 배열 내에 넣어줄 수 있다.
myUserType : userTypes || [] // 위와 같은 표현이 되겠다.
myUserType : user.info.userTypes || [] // 비구조화 굳이 안쓰고 이렇게 해도 같은 표현이다.
},
}
'JavaScript' 카테고리의 다른 글
JavaScript - map 함수란 (feat. filter) (0) | 2021.05.12 |
---|---|
javaScript - slice와 splice 비교하기 (0) | 2021.05.07 |
javaScript - input type="file" 특정 파일확장자 이미지 업로드 (0) | 2021.05.01 |
JavaScript - Math.ceil / Math.floor / Math.round (0) | 2021.04.07 |
JavaScript - Callback 함수란 (0) | 2021.03.23 |
댓글