๐๏ธWeb/JavaScript
[JavaScript] ์๋ฐ์คํฌ๋ฆฝํธ - ๊ตฌ์กฐ ๋ถํด ํ ๋น(Destructuring Assignment)
๋ฃจ๋ฆฌ์ผใ
2024. 4. 21. 13:31
๋ฐ์ํ
์๋ฐ์คํฌ๋ฆฝํธ์ Destructuring์ ๋ํด์ ๋ฐฐ์ด์์์ ๊ฐ์ฒด์์๋ ์ด๋ป๊ฒ ์ฐ์ด๋ ์ง ์์๋ณด์.
๋ฐฐ์ด์์์ ๋์คํธ๋ญ์ฒ๋ง
๋ฐฐ์ด์ ๊ฐ ์์๋ฅผ ๋ณ์๋ก ์ฝ๊ฒ ํ ๋นํ ์ ์๋ค.
const numbers = [1, 2, 3];
const [one, two, three] = numbers;
console.log(one); // 1
console.log(two); // 2
console.log(three); // 3
๊ธฐ๋ณธ๊ฐ ์ค์
๋ฐฐ์ด์ ์์๊ฐ ๋๋ฝ๋์์ ๋ ๊ธฐ๋ณธ๊ฐ์ ์ง์ ํ ์ ์๋ค.
const [a, b, c = 3] = [1, 2];
console.log(a, b, c); // 1, 2, 3
๋๋จธ์ง ์์ ๊ฐ์ ธ์ค๊ธฐ
'...' ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด์ ๋๋จธ์ง ๋ถ๋ถ์ ์ ๋ฐฐ์ด๋ก ๊ฐ์ ธ์ฌ ์ ์๋ค.
const [first, ...rest] = [10, 20, 30, 40];
console.log(first); // 10
console.log(rest); // [20, 30, 40]
๊ฐ์ฒด์์์ ๋์คํธ๋ญ์ฒ๋ง
๊ฐ์ฒด์ ์์ฑ์ ๋ณ์๋ก ์ฝ๊ฒ ํ ๋นํ ์ ์์ผ๋ฉฐ, ๋ฐฐ์ด๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก '...' ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ๋๋จธ์ง ์์ฑ์ ์ ๊ฐ์ฒด๋ก ์ถ์ถํ ์ ์๋ค.
const person = {
name: 'ํ๊ธธ๋',
age: 25,
job: '๊ฐ๋ฐ์'
};
const { name, age, job } = person;
console.log(name); // ํ๊ธธ๋
console.log(age); // 25
console.log(job); // ๊ฐ๋ฐ์
์๋ก์ด ๋ณ์ ์ด๋ฆ์ผ๋ก ํ ๋น
๊ฐ์ฒด ์์ฑ์ ๋ค๋ฅธ ์ด๋ฆ์ ๋ณ์๋ก ํ ๋นํ ์ ์๋ค.
const { name: userName, age: userAge } = person;
console.log(userName); // ํ๊ธธ๋
console.log(userAge); // 25
๊ธฐ๋ณธ๊ฐ ์ค์
๊ฐ์ฒด์ ํน์ฑ ์์ฑ์ด ๋๋ฝ๋ ๊ฒฝ์ฐ ๊ธฐ๋ณธ๊ฐ์ ์ค์ ํ ์ ์๋ค.
const { name, age, salary = 50000 } = person;
console.log(salary); // 50000 (person ๊ฐ์ฒด์ salary ์์ฑ์ด ์์ผ๋ฏ๋ก ๊ธฐ๋ณธ๊ฐ ์ฌ์ฉ)
๋๋จธ์ง ์์ฑ ๊ฐ์ ธ์ค๊ธฐ
๊ฐ์ฒด์ ๋๋จธ์ง ์์ฑ๋ค์ ์ ๊ฐ์ฒด๋ก ์ถ์ถํ ์ ์๋ค.
const { name, ...rest } = person;
console.log(name); // ํ๊ธธ๋
console.log(rest); // { age: 25, job: '๊ฐ๋ฐ์' }
๋ฐ์ํ