이채현
Destructuring
destructuring(비구조화)는 object나 array 등 안의 변수를 바깥으로 끄집어내는 것
Object Destructuring
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
const settings = { notifications: { follow: true, alerts: true, unfollow: false, }, color: { theme: "dakr", }, };
if (settingss.notifications.follow) { }
|
⇒
1 2 3 4 5 6 7 8 9 10 11 12
|
const { notifications: { follow = false } = {}, color } = settings;
console.log(follow); console.log(color);
|
Array Destructuring
array destructuring은 보통 가져온 정보를 조작하기 않을 때 쓰기 좋다.
1 2 3 4 5 6 7 8 9 10
|
const days = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"];
const [mon, tue, wed, , , , sun, aaa = "AAA"] = days;
console.log(sun);
|
Renaming
api등에서 받아온 데이터의 이름이 별로일 때 바꿔보자
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
const settings = { color: { chosen_color: "dark", }, };
const { color: { chosen_color: chosenColor = "light" }, } = settings;
-----------------
let chosenColor = "blue";
console.log(chosenColor);
({ color: { chosen_color: chosenColor = "light" }, } = settings);
console.log(chosenColor);
|
Function Destructuring
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
function saveSettings(followAlert, unfollowAlert, mrkAlert, themeColor) {}
function saveSettings({ follow, alert, color = "blue" }) { console.log(color); }
saveSettings({ follow: true, alert: true, mkt: true, color: "green", });
----------- 더 간단히..
function saveSettings({ notifications, color: { theme = "blue" } = {} }) { console.log(theme); }
saveSettings({ notifications: { follow: true, alert: true, mkt: true, }, });
|
Value shorthands
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| const follow = checkFollow(); const alert = checkAlert();
const settings = { notifications: { follow: follow, alert: alert, }, };
const settings = { notifications:{ follow, alert } }
|