๐๊ตฌ์กฐ ๋ถํด ํ ๋น์ด๋ ?
- ๋ฐฐ์ด์ด๋ ๊ฐ์ฒด์ ์์ฑ์ ํด์ฒดํ์ฌ ๊ทธ ๊ฐ์ ๊ฐ๋ณ ๋ณ์์ ๋ด์ ์ ์๊ฒ ํ๋ 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 |