๊ด€๋ฆฌ ๋ฉ”๋‰ด

ruriruriya

[JavaScript] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ - ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น(Destructuring Assignment) ๋ณธ๋ฌธ

๐Ÿ–Œ๏ธ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: '๊ฐœ๋ฐœ์ž' }

 

๋ฐ˜์‘ํ˜•