FE/JavaScript

[JS] ๊ตฌ์กฐ๋ถ„ํ•ด ํ• ๋‹น

mandelina 2022. 5. 11. 01:53

๐Ÿš€๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น์ด๋ž€ ?

- ๋ฐฐ์—ด์ด๋‚˜ ๊ฐ์ฒด์˜ ์†์„ฑ์„ ํ•ด์ฒดํ•˜์—ฌ ๊ทธ ๊ฐ’์„ ๊ฐœ๋ณ„ ๋ณ€์ˆ˜์— ๋‹ด์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” JS ํ‘œํ˜„์‹์ด๋‹ค.

- ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น์ด๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค.

 

 

- ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น ๊ตฌ๋ฌธ์ด ์—†๋˜ ES5์—์„  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ• ๋‹น ํ•˜์˜€๋‹ค.

 

var categories = ['IT', 'life', 'TIL']; // ํ• ๋‹น์„ ํ•ด์ฃผ๊ณ ์ž ํ•˜๋Š” ๋ฐฐ์—ด

var category1 = categories[0];
var category2 = categories[1];
var category3 = categories[2];

console.log(category1, category2, category3);
// IT life TIL

 

์œ„ ์ฝ”๋“œ์™€ ๊ฐ™์ด ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์š”์†Œ์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ–ˆ๋‹ค.

ํ•˜์ง€๋งŒ n๊ฐœ๋ฅผ ํ• ๋‹นํ•ด์ค„์‹œ n์ค„์˜ ์ฝ”๋“œ์ž‘์„ฑ์ด ํ•„์š”ํ–ˆ๋‹ค.

 


 

๊ทธ๋ ‡๋‹ค๋ฉด ES6์˜ ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.

 

๋จผ์ € ์•Œ์•„์•ผ ํ•  ์ ์€ ๋ฐฐ์—ด ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น์˜ ๋Œ€์ƒ์€ (์ฆ‰ ํ• ๋‹น๋ฌธ์˜ ์šฐ๋ณ€์— ํ•ด๋‹น) ์ดํ„ฐ๋Ÿฌ๋ธ”์ด์–ด์•ผํ•˜๋ฉฐ,

ํ• ๋‹น ๊ธฐ์ค€์€ ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค์ด๋‹ค. ๋”ฐ๋ผ์„œ ์ˆœ์„œ๋Œ€๋กœ ํ• ๋‹น๋œ๋‹ค.

 

* ๋ฐฐ์—ด,๋ฌธ์ž์—ด,Map,Set : ์ดํ„ฐ๋Ÿฌ๋ธ” , ๊ฐ์ฒด๋Š” ์ดํ„ฐ๋Ÿฌ๋ธ” ํ•˜์ง€ ์•Š๋‹ค.

 

 

[์˜ˆ์ œ-1] -๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น ์˜ˆ

const categories = ['IT', 'life', 'TIL']; 

// ์•„๋ž˜์˜ ๋‘ ์ฝ”๋“œ๋Š” ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ํ•œ๋‹ค.
const [category1, category2, category3] = ['IT', 'life', 'TIL'];
const [category1, category2, category3] = categories;

console.log(category1, category2, category3);
// IT life TIL

์ด๋ ‡๋“ฏ ๋ฐฐ์—ด๊ฐ’์„ ๋‚˜์—ดํ•ด ํ• ๋‹นํ•ด์ค„ ์ˆ˜ ๋„ ์žˆ๊ณ , ๋ฐฐ์—ด ์ด๋ฆ„ ํ˜•ํƒœ๋กœ ์„ ์–ธํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

์ฃผ์˜ํ•ด์•ผํ•  ์ ์€ ์šฐ์ธก์—๋Š” ๊ผญ ์ดํ„ฐ๋Ÿฌ๋ธ”ํ•œ ๊ฒƒ์ด ์™€์•ผํ•œ๋‹ค๋Š” ์ ์ด๋‹ค.

 

 

 

[์˜ˆ์ œ-2] - ์šฐ๋ณ€์— ๋ฐฐ์—ด๋ฉ”์†Œ๋“œ๋„ ์‚ฌ์šฉ๊ฐ€๋Šฅ

const [a, b, c ] = 'true,true,true'.split(',');
console.log([a,b,c]);

'ture'๋ผ๋Š” ๋ฌธ์ž์—ด์„ splitํ•˜์—ฌ ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๋กœ ๋“ค์–ด๊ฐ„๋‹ค.

 

[๊ฒฐ๊ณผ]


 

 

 

[์˜ˆ์ œ-3] - ์„ ์–ธ๊ณผ ํ• ๋‹น ๋ถ„๋ฆฌ

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

let x,y ;
[x,y] = [1,2];
console.log([x,y]);

 

 

 

[์˜ˆ์ œ-4] - ๋ณ€์ˆ˜ ๊ฐฏ์ˆ˜

๋งŒ์•ฝ ์ขŒ๋ณ€์— ๋ณ€์ˆ˜์˜ ๊ฐฏ์ˆ˜๊ฐ€ ์šฐ๋ณ€์˜ ๋ฐฐ์—ด์š”์†Œ์˜ ๊ฐฏ์ˆ˜๋ณด๋‹ค ๋งŽ๋‹ค๋ฉด?

์—๋Ÿฌ๊ฐ€ ๋‚ ๊ฒƒ๊ฐ™์ง€๋งŒ ์—๋Ÿฌ๊ฐ€ ๋‚˜์ง€ ์•Š๋Š”๋‹ค.

const categories = ['IT', 'TIL']; // ๋ฐฐ์—ด ์š”์†Œ์˜ ๊ฐฏ์ˆ˜ : 2

const [category1, category2, category3] = categories; // ๋ณ€์ˆ˜์˜ ๊ฐฏ์ˆ˜ : 3

 

 

[๊ฒฐ๊ณผ]

ํ•˜์ง€๋งŒ category3์€ ํ• ๋‹น๋œ ๊ฐ’์ด ์—†์œผ๋ฏ€๋กœ undefined๊ฐ€ ๋œฌ๋‹ค.

 

 

 

[์˜ˆ์ œ-5] - ๊ฐ์ฒด ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น

๊ฐ์ฒด ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น์˜ ๋Œ€์ƒ(ํ• ๋‹น๋ฌธ์˜ ์šฐ๋ณ€)์€ ๊ฐ์ฒด์—ฌ์•ผํ•˜๋ฉฐ, ํ• ๋‹น ๊ธฐ์ค€์€ ํ”„๋กœํผํ‹ฐ ํ‚ค๋‹ค.

์ˆœ์„œ๋Š” ์˜๋ฏธ๊ฐ€ ์—†์œผ๋ฉฐ,  ์„ ์–ธ๋œ ๋ณ€์ˆ˜์ด๋ฆ„๊ณผ ํ”„๋กœํผํ‹ฐ ํ‚ค๊ฐ€ ์ผ์น˜ํ•˜๋ฉด ํ• ๋‹น๋œ๋‹ค. 

 

const todos = [
	  { id: 1, content: 'HTML', completed: true },
	  { id: 2, content: 'CSS', completed: false },
	  { id: 3, content: 'JS', completed: false }
];

const [, {id}] = todos;
console.log(id); // 2

const content = todos;
console.log(content); // 'JS'

 

 

 

[์˜ˆ์ œ-6] - ๊ฐ์ฒด ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น ๊ธฐ๋ณธ๊ฐ’

const post = ['JS-study', ['til', 'fe', 'it']];

// ๊ธฐ๋ณธ๊ฐ’์„ ์„ค์ •ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ
const [title, categories, isPrivate] = post;
console.log(isPrivate);
// undefined

// ๊ธฐ๋ณธ๊ฐ’์„ ์„ค์ •ํ•œ ๊ฒฝ์šฐ
const [title, categories, isPrivate = false] = post;
console.log(isPrivate);
// false

๊ธฐ๋ณธ๊ฐ’์„ ์„ค์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด undefined๊ฐ€ ๋‚˜์˜ค์ง€๋งŒ,

๊ธฐ๋ณธ๊ฐ’์„ ์„ค์ •ํ•œ๋‹ค๋ฉด (isPrivate = false) false ๊ฐ’์ด ๋‚˜์˜จ๋‹ค.

 

- ์ฐธ๊ณ ๋กœ title์€ 'JS-study'๊ฐ€ , categories๋Š” ['til', 'fe', 'it']๊ฐ€ ํ• ๋‹น ๋˜์—ˆ๋‹ค.

 

 

 

[์˜ˆ์ œ-7] - ๋ณ€์ˆ˜ ๊ฐ’ ๊ตํ™˜

let wade = {
	  name : 'wade',
	  ranking : '1st',
};

let licat = {
	  name : 'licat',
	  ranking : '2nd',
};

[wade.ranking, licat.ranking] = [licat.ranking, wade.ranking];

console.log(wade, licat);

wade.ranking๊ณผ licat.ranking์ด ๊ตํ™˜๋œ๋‹ค.

 

 

[์˜ˆ์ œ-8] - ๋ฐฐ์—ด๊ณผ Rest ์š”์†Œ

Rest์š”์†Œ ? 

๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น์—์„œ ์„ ์–ธ๋œ ๋ณ€์ˆ˜์— ๊ฐ’์„ ํ• ๋‹น ๋ฐ›์„์‹œ, ๋‚˜๋จธ์ง€ ์š”์†Œ๋ฅผ ๋ฐฐ์—ด๋กœ ๋ฐ›๋Š”๊ฒƒ

 

์‚ฌ์šฉ๋ฐฉ๋ฒ• : ๋งˆ์ง€๋ง‰ ์š”์†Œ๋กœ ์ „๊ฐœ๊ตฌ๋ฌธ ( . . . )์„ ์‚ฌ์šฉํ•œ๋‹ค.

 

const categories = ['IT', 'life', 'TIL', 'javascript'];
const [firstCategory, ...restCategories] = categories;

console.log(firstCategory);
// 'IT'
console.log(restCategories);
// ['life', 'TIL', 'javascript'] ๋‚˜๋จธ์ง€ ์š”์†Œ๋“ค์ด ๋ฐฐ์—ด๋กœ ํ• ๋‹น์ด ๋œ๋‹ค.

...restCategories์˜ ๊ฐ’์ด ๋ฐฐ์—ด์ธ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

[๊ฒฐ๊ณผ]


 

 

* ์ฃผ์˜

- ๋งŒ์•ฝ ์ „๊ฐœ๊ตฌ๋ฌธ์œผ๋กœ ๋ฐ›์€ ๊ฐ’์ด ํ•˜๋‚˜์—ฌ๋„ ๋ฐฐ์—ด๋กœ ๋ฐ›์•„์˜จ๋‹ค.

- ๋ฌด์กฐ๊ฑด ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰์—์„œ Rest์š”์†Œ๋ฅผ ์ž‘์„ฑํ•ด์•ผํ•œ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

'FE > JavaScript' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[JS] this  (0) 2022.05.11
[JS] ํด๋กœ์ € (Closure)  (0) 2022.05.11
[JS] for of ๊ณผ for in  (0) 2022.05.11
[JS] ๋ฐฐ์—ด์˜ ๋ฉ”์†Œ๋“œ - find , filter ,map  (0) 2022.05.11
[JS] ๋ฐฐ์—ด - splice() , slice() ์ฐจ์ด  (0) 2022.05.03