๐Ÿ“– ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น(๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น)

c_yjยท2022๋…„ 7์›” 15์ผ
0

DeepDive

๋ชฉ๋ก ๋ณด๊ธฐ
33/42
post-thumbnail

๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น(๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น)์€ ๊ตฌ์กฐํ™”๋œ ๋ฐฐ์—ด๊ณผ ๊ฐ™์€ ์ดํ„ฐ๋Ÿฌ๋ธ” ๋˜๋Š” ๊ฐ์ฒด๋ฅผ destructuring(๋น„๊ตฌ์กฐํ™”, ๊ตฌ์กฐํŒŒ๊ดด)ํ•˜์—ฌ 1๊ฐœ ์ด์ƒ์˜ ๋ณ€์ˆ˜์— ๊ฐœ๋ณ„์ ์œผ๋กœ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ๋ฐฐ์—ด๊ณผ ๊ฐ™์€ ์ดํ„ฐ๋Ÿฌ๋ธ” ๋˜๋Š” ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด์—์„œ ํ•„์š”ํ•œ ๊ฐ’๋งŒ ์ถ”์ถœํ•˜์—ฌ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•  ๋–„ ์œ ์šฉ.

๋ฐฐ์—ด ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น โ“

ES6์˜ ๋ฐฐ์—ด ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น์€ ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๋ฅผ ๋ฐฐ์—ด๋กœ๋ถ€ํ„ฐ ์ถ”์ถœํ•˜์—ฌ 1๊ฐœ ์ด์ƒ์˜ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•œ๋‹ค. ๋ฐฐ์—ด ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น์˜ ๋Œ€์ƒ(ํ• ๋‹น๋ฌธ์˜ ์šฐ๋ณ€)์€ ์ดํ„ฐ๋Ÿฌ๋ธ”์ด์–ด์•ผ ํ•˜๋ฉฐ, ํ• ๋‹น ๊ธฐ์ค€์€ ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋‹ค. ์ฆ‰, ์ˆœ์„œ๋Œ€๋กœ ํ• ๋‹น.

const arr = [1,2,3];

// ES6 ๋ฐฐ์—ด ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น
// ๋ณ€์ˆ˜ one, two, three๋ฅผ ์„ ์–ธํ•˜๊ณ  ๋ฐฐ์—ด arr๋ฅผ ๋”ง๋“œํŠธ๋Ÿญ์ฒ˜๋งํ•˜์—ฌ ํ• ๋‹นํ•œ๋‹ค.
// ์ด๋•Œ ํ• ๋‹น ๊ธฐ์ค€์€ ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋‹ค.
const [one, two, three] = arr;

console.log(one, two, three); // 1 2 3 

๋ฐฐ์—ด ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น์„ ์œ„ํ•ด์„œ๋Š” ํ• ๋‹น ์—ฐ์‚ฐ์ž ์™ผ์ชฝ์— ๊ฐ’์„ ํ• ๋‹น๋ฐ›์„ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•ด์•ผ ํ•œ๋‹ค. ์ด๋–„ ๋ณ€์ˆ˜๋ฅผ ๋ฐฐ์—ด ๋ฆฌํ„ฐ๋Ÿด ํ˜•ํƒœ๋กœ ์„ ์–ธํ•œ๋‹ค.

๋ฐฐ์—ด ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น์˜ ๋ณ€์ˆ˜ ์„ ์–ธ๋ฌธ์€ ๋‹ค์Œ์ฒ˜๋Ÿผ ์„ ์–ธ๊ณผ ํ• ๋‹น์„ ๋ถ„๋ฆฌํ•  ์ˆ˜๋„ ์žˆ๋‹ค. const ํ‚ค์›Œ๋“œ๋กœ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๊ถŒ์žฅโŒ

๋ฐฐ์—ด ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น์˜ ๊ธฐ์ค€์€ ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋‹ค. ์ฆ‰, ์ˆœ์„œ๋Œ€๋กœ ํ• ๋‹น๋œ๋‹ค. ์ด๋–„ ๋ณ€์ˆ˜์˜ ๊ฐœ์ˆ˜์™€ ์ดํ„ฐ๋Ÿฌ๋ธ”์˜ ์š”์†Œ ๊ฐœ์ˆ˜๊ฐ€ ๋ฐ˜๋“œ์‹œ ์ผ์น˜ํ•  ํ•„์š”๋Š” ์—†๋‹ค.

๋ฐฐ์—ด ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น์„ ์œ„ํ•œ ๋ณ€์ˆ˜์— ๊ธฐ๋ณธ๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฐฐ์—ด ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น์„ ์œ„ํ•œ ๋ณ€์ˆ˜์— Rest ํŒŒ๋ผ๋ฏธํ„ฐ์™€ ์œ ์‚ฌํ•˜๊ฒŒ Rest ์š”์†Œ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. Rest ์š”์†Œ๋Š” Rest ํŒŒ๋ผํ‹ฐ๋จธ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ฐ˜๋“œ์‹œ ๋งˆ์ง€๋ง‰์— ์œ„์น˜

๊ฐ์ฒด ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น โ“

ES6์˜ ๊ฐ์ฒด ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น์€ ๊ฐ์ฒด์˜ ๊ฐ ํ”„๋กœํผํ‹ฐ๋ฅผ ๊ฐ์ฒด๋กœ๋ถ€ํ„ฐ ์ถ”์ถœํ•˜์—ฌ 1๊ฐœ ์ด์ƒ์˜ ๋ณ€์ˆ˜์— ํ• ๋‹น. ์ด๋–„ ๊ฐ์ฒด ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น์˜ ๋Œ€์ƒ์€ ๊ฐ์ฒด์ด์–ด์•ผ ํ•˜๋ฉฐ, ํ• ๋‹น ๊ธฐ์ค€์€ ํ”„๋กœํผํ‹ฐ ํ‚ค๋‹ค. ์ฆ‰, ์ˆœ์„œ๋Š” ์˜๋ฏธ๊ฐ€ ์—†์œผ๋ฉฐ ์„ ์–ธ๋œ ๋ณ€์ˆ˜ ์ด๋ฆ„๊ณผ ํ”„๋กœํผํ‹ฐ ํ‚ค๊ฐ€ ์ผ์น˜ํ•˜๋ฉด ํ• ๋‹น.

const user = { firstName: 'Ungmo', lastName : 'Lee'};

// ES6 ๊ฐ์ฒด ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น
// ๋ณ€์ˆ˜ lastName, firstName์„ ์„ ์–ธํ•˜๊ณ  user ๊ฐ์ฒด๋ฅผ ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋งํ•˜์—ฌ ํ• ๋‹นํ•œ๋‹ค.
const { lastName, firstName } = user;

console.log(firstName, lastName); // Ungmo Lee

๋ฐฐ์—ด ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ฐ์ฒด ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น์„ ์œ„ํ•ด์„œ๋Š” ํ• ๋‹น ์—ฐ์‚ฐ์ž ์™ผ์ชฝ์— ํ”„๋กœํผํ‹ฐ ๊ฐ’์„ ํ• ๋‹น๋ฐ›์„ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•ด์•ผ ํ•œ๋‹ค. ์ด๋–„ ๋ณ€์ˆ˜๋ฅผ ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด ํ˜•ํƒœ๋กœ ์„ ์–ธ

๊ฐ์ฒด ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น์€ ๊ฐ์ฒด์—์„œ ํ”„๋กœํผํ‹ฐ ํ‚ค๋กœ ํ•„์š”ํ•œ ํ”„๋กœํผํ‹ฐ ๊ฐ’๋งŒ ์ถ”์ถœํ•˜์—ฌ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๊ณ  ์‹ถ์„๋–„ ์œ ์šฉ

const str = 'Hello';
// String ๋ž˜ํผ ๊ฐ์ฒด๋กœ๋ถ€ํ„ฐ length ํ”„๋กœํผํ‹ฐ๋งŒ ์ถ”์ถœํ•œ๋‹ค
const { length } = str;
console.log(length); // 5

const todo = { id: 1, content: 'HTML', completed: true};
// todo ๊ฐ์ฒด๋กœ๋ถ€ํ„ฐ id ํ”„๋กœํผํ‹ฐ๋งŒ ์ถ”์ถœํ•œ๋‹ค.
const { id } = todo;
console.log(id) ; // 1

๊ฐ์ฒด ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น์€ ๊ฐ์ฒด๋ฅผ ์ธ์ˆ˜๋กœ ์ „๋‹ฌ๋ฐ›๋Š” ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜์—๋„ ์‚ฌ์šฉ

๋ฐฐ์—ด์˜ ์š”์†Œ๊ฐ€ ๊ฐ์ฒด์ธ ๊ฒฝ์šฐ ๋ฐฐ์—ด ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น๊ณผ ๊ฐ์ฒด ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น์„ ํ˜ผ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.`

๊ฐ์ฒด ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น์„ ์œ„ํ•œ ๋ณ€์ˆ˜์— Rest ํŒŒ๋ผ๋ฏธํ„ฐ๋‚˜ Rest ์š”์†Œ์™€ ์œ ์‚ฌํ•˜๊ฒŒ Rest ํ”„๋กœํผํ‹ฐ ...์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. Rest ํ”„๋กœํผํ‹ฐ๋Š” ๋งˆ์ง€๋ง‰์— ์œ„์น˜

profile
FrontEnd Developer

0๊ฐœ์˜ ๋Œ“๊ธ€