๋์คํธ๋ญ์ฒ๋ง ํ ๋น (๊ตฌ์กฐ ๋ถํด ํ ๋น)
๊ตฌ์กฐํ๋ ๋ฐฐ์ด๊ณผ ๊ฐ์ ์ดํฐ๋ฌ๋ธ ๋๋ ๊ฐ์ฒด๋ฅผ Destructuring = ๋น๊ตฌ์กฐํ, ๊ตฌ์กฐ ํ๊ดด ํ์ฌ 1๊ฐ ์ด์์ ๋ณ์์ ๊ฐ๋ณ์ ์ผ๋ก ํ ๋นํ๋ ๊ฒ์ ๋งํ๋ค.
๐ฒ 36.1 ๋ฐฐ์ด ๋์คํธ๋ญ์ฒ๋ง ํ ๋น
๋ฐฐ์ด ๋์คํธ๋ญ์ฒ๋ง ํ ๋น์ ๋์(ํ ๋น๋ฌธ์ ์ฐ๋ณ)์ ์ดํฐ๋ฌ๋ธ์ด์ฌ์ผ ํ๋ฉฐ, ํ ๋น ๊ธฐ์ค์ ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ค.
์ฆ, ์์๋๋ก ํ ๋น๋๋ค.
const arr = [1, 2, 3];
const [one, two, tree] = arr;
console.log(one, two, three); // 1, 2, 3
const [x, y] = [1, 2];
์ฐ๋ณ์ ์ดํฐ๋ฌ๋ธ ํ ๋น์ ํ์ง ์์ผ๋ฉด ์ค๋ฅ๋จ.
์์ ๊ฐ์๊ฐ ๋ฐ๋์ ์ผ์นํ ํ์๋ ์๋ค.
const [a, b] = [1];
console.log(a, b) // 1 undefined
๊ธฐ๋ณธ๊ฐ๋ณด๋ค ํ ๋น๋ ๊ฐ์ด ์ฐ์ ๋๋ค.
const [a, b, c = 3] = [1, 2, 10];
console.log(a, b, c) //1 2 10
๊ธฐ๋ณธ๊ฐ 3์ด ์๋ ํ ๋น๋ 10์ด ๋จ.
๐ฒ 36.2 ๊ฐ์ฒด ๋์คํธ๋ญ์ฒ๋ง ํ ๋น
๊ฐ ํ๋กํผํฐ๋ฅผ ๊ฐ์ฒด๋ก๋ถํฐ ๋์คํธ๋ญ์ณ๋ง ํ์ฌ ๋ณ์์ ํ ๋นํ๊ธฐ ์ํด์๋ ํ๋กํผํฐ ํค๋ฅผ ์ฌ์ฉํด์ผํ๋ค.
๊ฐ์ฒด ๋์คํธ๋ญ์ฒ๋ง ํ ๋น ๊ธฐ์ค์ ํ๋กํผํฐ ํค๋ค.
์ฆ, ์์๋ ์๋ฏธ๊ฐ ์์ผ๋ฉฐ, ์ ์ธ๋ ๋ณ์ ์ด๋ฆ๊ณผ ํ๋กํผํฐ ํค๊ฐ ์ผ์นํ๋ฉด ํ ๋น๋๋ค.
(ํ .. ์ด๋์ ๋ง์ด ๋ค์ด๋ดค๋๋ฐ)
const user = { firstName: 'San', lastName: "ta" };
const firstName = user.firstName;
const lastName = user.lastName;
=> ์ด ๋ถ๋ถ์
const { firstName, lastName } = user;
์ด๋ ๊ฒ ์จ์ค๋ ๋จ.
console.log(firstName, lastName);
//San ta
๊ฐ์ฒด์ ํ๋กํผํฐ์ ๋ค๋ฅธ ์ด๋ฆ์ผ๋ก ๊ฐ์ ํ ๋น๋ฐ์ผ๋ ค๋ฉด ๋ณ์๋ฅผ ์๋์ ๊ฐ์ด ์ ์ธํ๋ค.
const user = { firstName: 'Hi', lastName: "Hello" };
const { lastName: ln, firstName: fn } = user;
console.log(fn, ln);
//Hi Hello
=> firstName, lastName ๋ณ์ ์ด๋ฆ ์ฌ์ฉํ๋ คํ๋ฉด ์๋ฌ๋จ.
๐ ๊ฐ์ฒด ๋์คํธ๋ญ์ฒ๋ง ํ ๋น์ ๊ฐ์ฒด์์ ํ์ํ ํ๋กํผํฐ๊ฐ๋ง ์ถ์ถํ์ฌ ๋ณ์์ ํ ๋นํ๊ณ ์ถ์ ๋ ์ ์ฉํ๋ค.
const str = "hello";
const { length } = str;
console.log(length);
const todo = { id: 123, content: "HTML", completed: true };
const { id } = todo;
console.log(id);
ํ ์ด๊ฑฐ ์ ํญ๋ง๋ค๊ธฐ์์ ๋ฐฐ์ด๊ฑฐ์๋?
์ค์ฐ~~~~~
const todos = [
{ id: 1, content: "HTML" },
{ id: 2, content: "CSS" },
{ id: 3, content: "JS" },
];
const [, { id }] = todos;
console.log(id); //2
๋ฐฐ์ด์ ์์๊ฐ ๊ฐ์ฒด์ธ ๊ฒฝ์ฐ, ๋ฐฐ์ด ๋์คํธ๋ญ์ฒ๋ง ํ ๋น๊ณผ ๊ฐ์ฒด ๋์คํธ๋ญ์ฒ๋ง์ ํผ์ฉํ ์ ์๋ค.
์ค์ฒฉ ๊ฐ์ฒด ์ฌ์ฉ๋ฒ
const user = {
name: "ddozza",
address: {
zipcode: 12345,
city: "Seoul"
}
}
const { address: { city } } = user;
console.log(city); //Seoul
'๋ ์ ๋ชฉ๋ก > ๋ชจ๋ฅ๋ค Modern JS Deep Dive' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ชจ๋ฅ๋ค] 37์ฅ Set๊ณผ Map (2) | 2023.06.04 |
---|---|
[๋ชจ๋ฅ๋ค] 35์ฅ ์คํ๋ ๋ ๋ฌธ๋ฒ (0) | 2023.06.02 |
[๋ชจ๋ฅ๋ค] 34์ฅ ์ดํฐ๋ฌ๋ธ (0) | 2023.06.01 |
[๋ชจ๋ฅ๋ค] 32์ฅ String (0) | 2023.05.29 |
[๋ชจ๋ฅ๋ค] 31์ฅ RegExp (0) | 2023.05.27 |