const dongwook = {
id: 'dddda321',
name: '강동욱',
age: '26',
habit: 'coding',
};
// const id = dongwook.id;
// const name = dongwook.name;
// const age = dongwook.age;
// const habit = dongwook.habit;
const { ID, habit } = dongwook;
console.log(ID, habit); // undefined "coding"
// 객체를 구조분해 할때 반드시 객체의 키값으로 해야한다 !!!!!
const arr1 = ['dongwook98', '동욱', 26];
// const dongwookId = arr1[0];
// const dongwookName = arr1[1];
// const dongwookAge = arr1[2];
const [dongwookId, _, dongwookAge] = arr1;
console.log(dongwookId, _, dongwookAge); // "dongwook98" "동욱" 26
🚨 객체를 구조분해 할때는 반드시 객체의 키값으로 해야한다!!!
(주의) 위와 같이 객체의 키이름(id)이 아닌 ID로 하면 내가 원하는 값을 못 받아온다.
객체를 구조분해 할때 객체는 내가 필요한 값만 꺼내올 수 있다. 👍
const { id, name, age, habit } = dongwook; 이렇게 안해주고
내가 필요한 id와 habit 데이터를 가져오고 싶다면 const { id, habit } = dongwook; 이렇게 해주면 된다.
하지만 배열을 구조분해 할때는 필요한값만 불러오지는 못하면 다 적어줘야 한다. 👎
만약에 const [dongwookId, dongwookAge] = arr1; 이렇게 구조분해 했다면
console.log(dongwookId, dongwookAge); // "dongwook98" "동욱"
dongwookAge에 dongwookName의 값("동욱")이 들어가게 된다. 내가 원하는 값이 아니다.
왜냐하면 배열에 인덱스가 정해져있기 때문이다.
그래서 배열을 구조분해 할때는 전부 다 적어줘야한다.
const [dongwookId, dongwookName, dongwookAge] = arr1;
다 적기싫다면 좋은 방법으로는 필요없는 데이터라는 의미를 주고싶다면 _ 언더바를 써주자.
const [dongwookId, _ , dongwookAge] = arr1;
참고: https://www.youtube.com/watch?v=fKjJIzvBJcg
'Front end > JavaScript' 카테고리의 다른 글
🔖 스프레드 연산자(Spread operator) (0) | 2023.02.27 |
---|---|
🔖 객체 (0) | 2023.02.25 |
🔖 블록, 함수 스코프, 클로저 문제 (0) | 2023.02.24 |
🔖 고차함수 개념 및 응용 (0) | 2023.02.22 |
🔖 리스너함수, 이벤트 객체 (0) | 2023.02.22 |