์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ์ฝ๋ฉํ ์คํธ
- CSS
- history api
- ๋ธ๋ก๊ทธ
- ๋ฐ๋ธ์ฝ์ค3๊ธฐ
- useRef
- Flex
- ์๋ฐ์คํฌ๋ฆฝํธ
- ํ๋ก ํธ์๋
- useEffect
- Props
- ๋ฐ๋ธ์ฝ์ค
- position
- REACT
- ์๊ณ ๋ฆฌ์ฆ
- Gatsby
- fetch API
- ํ๋ก๊ทธ๋๋จธ์ค
- float
- Today
- Total
Daehyunii's Dev-blog
10์ฅ ๊ฐ์ฒด ๋ฆฌํฐ๋ด ๋ณธ๋ฌธ
10์ฅ ๊ฐ์ฒด ๋ฆฌํฐ๋ด
Daehyunii 2022. 6. 29. 21:5810์ฅ ๊ฐ์ฒด ๋ฆฌํฐ๋ด
10.1 ๊ฐ์ฒด๋?
์๋ฐ์คํฌ๋ฆฝํธ๋ ๊ฐ์ฒด ๊ธฐ๋ฐ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ด๋ฉฐ, ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๊ตฌ์ฑํ๋ ๊ฑฐ์ ๋ชจ๋ ๊ฒ์ด ๊ฐ์ฒด๋ค. ์์ ๊ฐ์ ์ ์ธํ ๋๋จธ์ง ๊ฐ์ ๋ชจ๋ ๊ฐ์ฒด๋ค. ์์ ํ์ ์ ๋จ ํ๋์ ๊ฐ๋ง ๋ํ๋ด์ง๋ง ๊ฐ์ฒด ํ์ ์ ๋ค์ํ ํ์ ์ ๊ฐ(์์ ํ์ ์ ๊ฐ ํฌํจ)์ ํ๋์ ๋จ์๋ก ๊ตฌ์ฑํ ๋ณตํฉ์ ์ธ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ์์ ํ์ ์ ๊ฐ์ ๋ณ๊ฒฝ ๋ถ๊ฐํ ๊ฐ์ด์ง๋ง ๊ฐ์ฒด ํ์ ์ ๊ฐ์ ๋ณ๊ฒฝ ๊ฐ๋ฅํ ๊ฐ์ด๋ค.
'๊ฐ์ฒด = ํ๋กํผํฐ(ํค+๊ฐ) + ํ๋กํผํฐ(ํ๋กํผํฐ ํค + ํ๋กํผํฐ ๊ฐ) + ๋ฉ์๋....' ์ผ๋ก ๊ตฌ์ฑ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ฌ์ฉํ ์ ์๋ ๋ชจ๋ ๊ฐ์ ํ๋กํผํฐ ๊ฐ์ด ๋ ์ ์๋ค. ํจ์๋ ๊ฐ์ผ๋ก ์ทจ๊ธ๋๋ฏ๋ก, ํ๋กํผํฐ ๊ฐ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค. ํ๋กํผํฐ ๊ฐ์ด ํจ์์ผ ๊ฒฝ์ฐ ์ผ๋ฐ ํจ์์ ๊ตฌ๋ถํ๊ธฐ ์ํด ๋ฉ์๋๋ผ ๋ถ๋ฅธ๋ค. ์ด์ฒ๋ผ ๊ฐ์ฒด๋ ํ๋กํผํฐ์ ๋ฉ์๋๋ก ๊ตฌ์ฑ๋ ์งํฉ์ฒด๋ค.
โ์ฐธ๊ณ
ํ๋กํผํฐ์ ์ญํ : ๊ฐ์ฒด์ ์ํ๋ฅผ ๋ํ๋ด๋ ๊ฐ(์ํ ๋ฐ์ดํฐ)
๋ฉ์๋์ ์ญํ : ์ํ ๋ฐ์ดํฐ๋ฅผ ์ฐธ์กฐํ๊ณ ์กฐ์ํ ์ ์๋ ๋์
10.2 ๊ฐ์ฒด ๋ฆฌํฐ๋ด์ ์ํ ๊ฐ์ฒด ์์ฑ
์๋ฐ์คํฌ๋ฆฝํธ๋ ํ๋กํ ํ์ ๊ธฐ๋ฐ ๊ฐ์ฒด์งํฅ ์ธ์ด๋ก์ ํด๋์ค ๊ธฐ๋ฐ ๊ฐ์ฒด์งํฅ ์ธ์ด์๋ ๋ฌ๋ฆฌ ๋ค์ํ ๊ฐ์ฒด ์์ฑ ๋ฐฉ๋ฒ์ ์ง์ํ๋ค.
1) ๊ฐ์ฒด ๋ฆฌํฐ๋ด์ ํตํ ๊ฐ์ฒด ์์ฑ
2) Object ์์ฑ์๋ฅผ ํตํ ๊ฐ์ฒด ์์ฑ
3) ์์ฑ์ ํจ์๋ฅผ ํตํ ๊ฐ์ฒด ์์ฑ
4) Object.create ๋ฉ์๋๋ฅผ ํตํ ๊ฐ์ฒด ์์ฑ
5) ํด๋์ค๋ฅผ ํตํ ๊ฐ์ฒด ์์ฑ
์ด๋ฌํ ๊ฐ์ฒด ์์ฑ ๋ฐฉ๋ฒ ์ค์์ ๊ฐ์ฅ ์ผ๋ฐ์ ์ด๊ณ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ๊ฐ์ฒด ๋ฆฌํฐ๋ด(๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ ์ํ ํ๊ธฐ๋ฒ)์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค. ๊ฐ์ฒด ๋ฆฌํฐ๋ด์ ์ค๊ดํธ( {...} ) ๋ด์ 0๊ฐ ์ด์์ ํ๋กํผํฐ๋ฅผ ์ ์ํ๋ค. ๋ณ์์ ํ ๋น๋๋ ์์ ์ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ๊ฐ์ฒด ๋ฆฌํฐ๋ด์ ํ๊ฐํด ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค. ํ๋กํผํฐ์ ํ๋กํผํฐ ์ฌ์ด๋ ( , )๋ก ์ฐ๊ฒฐํ๊ณ ๊ฐ์ฒด ๋ฆฌํฐ๋ด์ ์ฝ๋ ๋ธ๋ก์ด ์๋๋ผ ๊ฐ์ผ๋ก ํ๊ฐ๋๋ ํํ์ ์ด๊ธฐ ๋๋ฌธ์ ์ธ๋ฏธ ์ฝ๋ก ( ; )์ ๋ถ์ฌ์ผ ํ๋ค.
//๊ฐ์ฒด ๋ฆฌํฐ๋ด์ ์ฌ์ฉํ์ฌ ๊ฐ์ฒด ๋ง๋ค๊ธฐ
var person = {
firstName : 'Dae', //ํ๋กํผํฐ
lastName : 'Woo', //ํ๋กํผํฐ
introduce : function () {
console.log(`My name is ${person.firstName} ${person.lastName}.`);
} //๋ฉ์๋
};
console.log(typeof person); // ๋ฌธ์์ด object ๋ฐํ
console.log(person); // {firstName: 'Dae', lastName: 'Woo', introduce: ƒ}
console.log(person.introduce()); // My name is Dae Woo.
๋ง์ฝ ์ค๊ดํธ ๋ด์ ํ๋กํผํฐ๋ฅผ ์ ์ํ์ง ์์ผ๋ฉด ๋น ๊ฐ์ฒด๊ฐ ์์ฑ๋๋ค. ๊ฐ์ฒด ๋ฆฌํฐ๋ด์ ํ๋กํผํฐ๋ฅผ ํฌํจ์์ผ ๊ฐ์ฒด๋ฅผ ์์ฑํจ๊ณผ ๋์์ ํ๋กํผํฐ๋ฅผ ๋ง๋ค ์๋ ์๊ณ , ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ดํ์ ํ๋กํผํฐ๋ฅผ ๋์ ์ผ๋ก ์ถ๊ฐํ ์๋ ์๋ค.(์์ ํ์ ์ ๊ฐ๊ณผ์ ์ฐจ์ด์ ) ๊ฐ์ฒด ๋ฆฌํฐ๋ด ์ด์ธ์ ๊ฐ์ฒด ์์ฑ ๋ฐฉ์์ ๋ชจ๋ ํจ์๋ฅผ ์ฌ์ฉํด ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค.(์์ธํ ๋ด์ฉ์ ํ์ )
10.3 ํ๋กํผํฐ
๊ฐ์ฒด๋ ํ๋กํผํฐ์ ์งํฉ์ด๋ฉฐ, ํ๋กํผํฐ๋ ํ๋กํผํฐ ํค, ํ๋กํผํฐ ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋๋ค.
var person = {
firstName : 'Dae', // fistName ํ๋กํผํฐ ํค : 'Dae' ํ๋กํผํฐ ๊ฐ
lastName : 'Woo' // lastName ํ๋กํผํฐ ํค : 'Woo' ํ๋กํผํฐ ๊ฐ
};
ํ๋กํผํฐ ํค์ ํ๋กํผํฐ ๊ฐ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ๊ฐ | |
ํ๋กํผํฐ ํค | ๋น ๋ฌธ์์ด์ ํฌํจํ ๋ชจ๋ ๋ฌธ์์ด, sybol๊ฐ |
ํ๋กํผํฐ ๊ฐ | ๋ชจ๋ ๋ฐ์ดํฐ ํ์ ์ ๊ฐ(์์ ํ์ ๊ฐ, ํจ์, ๊ฐ์ฒด...) |
ํ๋กํผํฐ ํค๋ ํ๋กํผํฐ ๊ฐ์ ์ ๊ทผํ ์ ์๋ ์ด๋ฆ์ผ๋ก์ ์๋ณ์ ์ญํ ์ ํ๋ค. ํ์ง๋ง ๋ฐ๋์ ์๋ณ์ ๋ค์ด๋ฐ ๊ท์น์ ๋ฐ๋ผ์ผ ํ๋ ๊ฒ์ ์๋์ง๋ง ์๋ณ์ ๋ค์ด๋ฐ ๊ท์น์ ๋ฐ๋ฅด์ง ์๋ ์ด๋ฆ์๋ ๋ฐ๋์ ๋ฐ์ดํ๋ฅผ ์ฌ์ฉํด์ผ ํ๊ณ , ์๋ณ์ ๋ค์ด๋ฐ ๊ท์น์ ๋ฐ๋ฅด๋ ์ด๋ฆ์๋ ๋ฐ์ดํ๋ฅผ ์ฌ์ฉํ์ง ์์๋ ๋๋ค.(๋ค์ด๋ฐ ๊ท์น์ ์งํค๋๊ฒ ๋ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋ค.) ๊ทธ๋ฌ๋ ์๋ณ์ ๋ค์ด๋ฐ ๊ท์น์ ๋ฐ๋ฅด์ง ์๋ ํ๋กํผํฐ ํค๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฒ๊ฑฐ๋ก์ด ์ผ์ด ๋ฐ์ํ๋ฏ๋ก ๋ค์ด๋ฐ ๊ท์น์ ๋ฐ๋ฅด๋ ์ด๋ฆ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ค.
var person = {
firstName : 'Ung-mo', // ๋ค์ด๋ฐ ๊ท์น์ ๋ฐ๋ผ ๋ฌธ์์ด ํ๋กํผํฐ ํค ์์ฑ
'last-name' : 'Lee' // ๋ค์ด๋ฐ ๊ท์น์ ๋ฐ๋ฅด์ง ์๊ณ ๋ฌธ์์ด ํ๋กํผํฐ ํค ์์ฑ
};
console.log(person); // {firstName: 'Ung-mo', last-name: 'Lee'}
var person = {
firstName : 'Ung-mo', // ๋ค์ด๋ฐ ๊ท์น์ ๋ฐ๋ผ ๋ฌธ์์ด ํ๋กํผํฐ ํค ์์ฑ
last-name : 'Lee' // ๋ค์ด๋ฐ ๊ท์น์ ๋ฐ๋ฅด์ง ์๊ณ ๋ฐ์ดํ๋ ๋ถ์ด์ง ์์ ๊ฒฝ์ฐ
};
console.log(person); //SyntaxError(์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ - ์ฐ์ฐ์๊ฐ ์๋ ํํ์์ผ๋ก ํด์ํจ)
โป์ฐธ๊ณ (4.7 ์๋ณ์ ๋ค์ด๋ฐ๊ท์น)
๋ฌธ์์ด ๋๋ ๋ฌธ์์ด๋ก ํ๊ฐํ ์ ์๋ ํํ์์ ์ฌ์ฉํด ํ๋กํผํฐ ํค๋ฅผ ๋์ ์ผ๋ก ์์ฑํ ์๋ ์๋ค. ์ด ๊ฒฝ์ฐ์๋ ํ๋กํผํฐ ํค๋ก ์ฌ์ฉํ ํํ์์ ๋๊ดํธ( [...] )๋ก ๋ฌถ์ด์ผ ํ๋ค. ํ ๋ง๋๋ก ๊ฐ์ฒด์ ํ๋กํผํฐ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด๋ค.
var obj = {}
var key = 'hello';
obj[key] = 'world'; //๋ฌธ์์ด๋ก ํ๊ฐํ ์ ์๋ ํํ์์ [...]๋ฅผ ์ฌ์ฉํ์ฌ ํ๋กํผํฐ ํค ๋์ ์์ฑ
console.log(obj); // {hello : 'world'}
ํ๋กํผํฐ ํค์ ๋ฌธ์์ด์ด๋ ์ฌ๋ฒ ๊ฐ ์ธ์ ๊ฐ์ ์ฌ์ฉํ๋ฉด ์๋ฌต์ ํ์ ๋ณํ์ ํตํด ๋ฌธ์์ด์ด ๋๋ค. (๋ค์์ด ๊ท์น์ ์งํค์ง ์๊ณ ๋ฌธ์์ด์ ๋ถ์ด์ง ์์ ํ๋กํผํฐ ํค ์ด๋ฆ์ Syntax Error๊ฐ ๋ฐ์ํ๋ค๋ ์ ์ ์!)
var person = {
0 : 'Ung-mo'
};
console.log(person); // {0: 'Ung-mo'} // ํ๋กํผํฐ ํค์ธ 0์ ์๋ฌต์ ํ์
๋ณํ๋์ด ๋ฌธ์์ด 0์ผ๋ก ๋ฐํ๋จ
์ด๋ฏธ ์กด์ฌํ๋ ํ๋กํผํฐ ํค๋ฅผ ์ค๋ณต ์ ์ธํ๋ฉด ๋์ค์ ์ ์ธํ ํ๋กํผํฐ๊ฐ ๋จผ์ ์ ์ธํ ํ๋กํผํฐ๋ฅผ ๋ฎ์ด์ด๋ค. (์๋ฌ ๋ฐ์ ์์)
var foo = {
name : 'Son',
name : 'sonny'
};
console.log(foo); // {name: 'sonny'}
//๋ฌธ์์ด๋ก ํ๊ฐํ ์ ์๋ ํํ์์ ์ฌ์ฉํด ํ๋กํผํฐ ํค๋ฅผ ๋์ ์ผ๋ก ์์ฑํ๋ ๋ฐฉ๋ฒ์ ์ด์ฉํ ๊ฒ
//๋์ผํ ํ๋กํผํฐ ํค๊ฐ ์กด์ฌํ๋ฏ๋ก ๋์ค์ ๋์ ์ผ๋ก ์์ฑํ ํ๋กํผํฐ ํค๊ฐ ๋จผ์ ์ ์ธํ ํ๋กํผํฐ ํค๋ฅผ ๋ฎ์
var capital = 'city';
var cities = {
city : 'busan'
};
cities[capital] = 'seoul';
console.log(cities); // {city: 'seoul'}
10.4 ๋ฉ์๋
ํจ์๋ ์ผ๊ธ ๊ฐ์ฒด๋ค. ๋ฐ๋ผ์ ํจ์๋ ๊ฐ์ผ๋ก ์ทจ๊ธํ ์ ์๊ธฐ ๋๋ฌธ์ ํผ๋กํผํฐ ๊ฐ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค. ํ๋ฌํผํฐ ๊ฐ์ด ํจ์์ผ ๊ฒฝ์ฐ ์ผ๋ฐ ํจ์์ ๊ตฌ๋ถํ๊ธฐ ์ํด ๋ฉ์๋๋ผ ๋ถ๋ฅธ๋ค. ๋ฉ์๋๋ ๊ฐ์ฒด์ ๋ฌถ์ฌ ์๋ ํจ์๋ฅผ ์๋ฏธํ๋ค. (์์ธํ ๋ด์ฉ์ ํ์ )
10.5 ํ๋กํผํฐ ์ ๊ทผ
ํ๋กํผํฐ ์ ๊ทผ ์ฐ์ฐ์ | ๋ค์ด๋ฐ ๊ท์น ์ค์ ํ๋กํผํฐ ํค | ๋ค์ด๋ฐ ๊ท์น ๋ฏธ์ค์ ํ๋กํผํฐ ํค | ์ฌ์ฉ์, ๋ฐ์ดํ ์ฌ๋ถ |
๋ง์นจํ ํ๊ธฐ๋ฒ ( . ) | ์ฌ์ฉ ๊ฐ๋ฅ | ์ฌ์ฉ ๋ถ๋ฅ | ๋ถํ์ |
๋๊ดํธ ํ๊ธฐ๋ฒ ( [...] ) | ์ฌ์ฉ ๊ฐ๋ฅ | ์ฌ์ฉ ๊ฐ๋ฅ | ํ์(์์ธ : ์ซ์์ธ ๋ฌธ์์ด) |
var person = {
name : 'woo'
};
console.log(person.name); // woo(๋ง์นจํ ํ๋กํผํฐ ์ ๊ทผ ์ฐ์ฐ์)
console.log(person['name']); // woo(๋๊ดํธ ํ๋กํผํฐ ์ ๊ทผ ์ฐ์ฐ์)
โป์ฃผ์์ฌํญ
-๋๊ดํธ ํ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ซ์๋ก ๊ตฌ์ฑ๋ ๋ฌธ์์ด์ ์ ์ธํ๊ณ ๋ ๋ฐ์ดํ๋ฅผ ๋ถ์ฌ์ค์ผ ํ๋ค. ๋ถ์ด์ง ์๋ ๊ฒฝ์ฐ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์๋ณ์๋ก ํด์ํ๋ค.
-๊ฐ์ฒด์ ์กด์ฌํ์ง ์๋ ํ๋กํผํฐ์ ์ ๊ทผํ๋ฉด undefined๋ฅผ ๋ฐํํ๋ค. (ReferenceError๋ ๋ฐ์ํ์ง ์๋๋ค.)
var person = {
name : 'woo'
};
console.log(person.name); // woo
console.log(person.age); // undefined
10.6 ํ๋กํผํฐ ๊ฐ ๊ฐฑ์
์ด๋ฏธ ์กด์ฌํ๋ ํ๋กํผํฐ์ ๊ฐ์ ํ ๋นํ๋ฉด ํ๋กํผํฐ ๊ฐ์ด ๊ฐฑ์ ๋๋ค.
var person = {
name : 'woo'
};
person.name = 'Son'; //๋ง์นจํ ํ๊ธฐ๋ฒ์ผ๋ก ํ๋กํผํฐ ๊ฐฑ์
console.log(person.name); //Son
person['name'] = 'Park'; //๋ฌธ์์ด์ ์
๋ ฅํ์ฌ ๋๊ดํธ ํ๊ธฐ๋ฒ์ผ๋ก ํ๋กํผํฐ ๊ฐฑ์
console.log(person.name); //Park
var first = 'name';
person[first] = 'Lee'; //๋ฌธ์์ด๋ก ํ๊ฐ๋๋ ํํ์์ ์
๋ ฅํ์ฌ ๋๊ดํธ ํ๊ธฐ๋ฒ์ผ๋ก ํ๋กํผํฐ ๊ฐฑ์
console.log(person.name); //Lee
10.7 ํ๋กํผํฐ ๋์ ์์ฑ
์กด์ฌํ์ง ์๋ ํ๋กํผํฐ์ ๊ฐ์ ํ ๋นํ๋ฉด ํ๋กํผํฐ๊ฐ ๋์ ์ผ๋ก ์์ฑ๋์ด ์ถ๊ฐ๋๊ณ ํ๋กํผํฐ ๊ฐ์ด ํ ๋น๋๋ค. (๋ง์ฝ ์๋ ํ๋กํผํฐ์ ๊ฐ์ ํ ๋นํ๋ฉด ํ๋กํผํฐ ๊ฐ์ด ๊ฐฑ์ ๋๋ค.)
//๋ง์นจํ ํ๊ธฐ๋ฒ์ ์ฌ์ฉํด์ ํ๋กํผํฐ ๋์ ์์ฑ
var person = {
name : 'woo'
};
person.age = 30;
console.log(person.age); // ์ซ์ ๊ฐ 30
//๋๊ดํธ ํ๊ธฐ๋ฒ์ ์ฌ์ฉํด์ ํ๋กํผํฐ ๋์ ์์ฑ
var person2 = {
name : 'son'
};
person2['age'] = 31; //๋ฌธ์์ด์ ์
๋ ฅํ์ฌ ์์ฑํ๋ ๋ฐฉ๋ฒ
console.log(person2.age); // ์ซ์ ๊ฐ 31
var gender1 = 'gender';
person2[gender1] = '๋จ'; // ๋ฌธ์์ด๋ก ํ๊ฐ๋๋ ํํ์์ ์
๋ ฅํ์ฌ ์์ฑํ๋ ๋ฐฉ๋ฒ
console.log(person2.gender); //๋ฌธ์์ด ๋จ
10.8 ํ๋กํผํฐ ์ญ์ (delete ์ฐ์ฐ์!!)
delete ์ฐ์ฐ์๋ ๊ฐ์ฒด์ ํ๋กํผํฐ๋ฅผ ์ญ์ ํ๋ค. ์ด๋ delete ์ฐ์ฐ์์ ํผ์ฐ์ฐ์๋ ํ๋กํผํฐ ๊ฐ์ ์ ๊ทผํ ์ ์๋ ํํ์์ด์ด์ผ ํ๋ค. ๋ง์ฝ ์กด์ฌํ์ง ์๋ ํ๋กํผํฐ๋ฅผ ์ญ์ ํ๋ฉด ์๋ฌด๋ฐ ์๋ฌ๋ ๋ฐ์ํ์ง ์๋๋ค.
var person = {
name : 'woo'
};
person.age = 30;
console.log(person.age); // 30
delete person.age;
console.log(person.age); // undefined
10.9 ES6์์ ์ถ๊ฐ๋ ๊ฐ์ฒด ๋ฆฌํฐ๋ด์ ํ์ฅ ๊ธฐ๋ฅ
ES6์์๋ ๋์ฑ ๊ฐํธํ๊ณ ํํ๋ ฅ ์๋ ๊ฐ์ฒด ๋ฆฌํฐ๋ด์ ํ์ฅ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค
10.9.1 ํ๋กํผํฐ ์ถ์ฝ ํํ
ํ๋กํผํฐ ๊ฐ์ผ๋ก ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ณ์ ์ด๋ฆ๊ณผ ํ๋กํผํฐ ํค๊ฐ ๋์ผํ ์ด๋ฆ์ผ ๋ ํ๋กํผํฐ ํค๋ฅผ ์๋ตํ ์ ์๋ค. ์ด๋ ํ๋กํผํฐ ํค๋ ๋ณ์ ์ด๋ฆ์ผ๋ก ์๋ ์์ฑ๋๋ค.(ํ๋กํผํฐ ํค๋ฅผ ์๋ตํ ์ ์์ผ๋ฉฐ, ํ๋กํผํฐ ํค๊ฐ ์๋ ์์ฑ๋๋ ๊ฒ์ด๋ค.)
var x = 1;
var y = 2;
var num = {
x,
y
};
console.log(num); // {x: 1, y: 2}
var num = {x,y};
console.log(num); // {x: 1, y: 2}
10.9.2 ๊ณ์ฐ๋ ํ๋กํผํฐ ์ด๋ฆ
์์ ์ ๋ฆฌํ ๋ด์ฉ๊ณผ ๊ฐ์ด ๋ฌธ์์ด ๋๋ ๋ฌธ์์ด๋ก ํ์ ๋ณํํ ์ ์๋ ๊ฐ์ผ๋ก ํ๊ฐ๋๋ ํํ์์ ์ฌ์ฉํด ํ๋กํผํฐ ํค๋ฅผ ๋์ ์ผ๋ก ์์ฑํ ์๋ ์๋ค. ์ด๋ ํ๋กํผํฐ ํค๋ฅผ ์ฌ์ฉํ ํํ์์ ๋๊ดํธ๋ก ๋ฌถ์ด์ผ ํ๋ค. ์ด๋ฅผ ๊ณ์ฐ๋ ํ๋กํผํฐ ์ด๋ฆ์ด๋ผ ํ๋ค. ES5์์๋ ๊ณ์ผ๋ ํ๋กํผํฐ ์ด๋ฆ์ผ๋ก ํ๋กํผํฐ ํค๋ฅผ ๋์ ์์ฑํ๋ ค๋ฉด ๊ฐ์ฒด ๋ฆฌํฐ๋ด ์ธ๋ถ์์ ๋๊ดํธ ํ๊ธฐ๋ฒ์ ์ฌ์ฉํด์ผ ํ๋ค. ํ์ง๋ง ES6๋ถํฐ๋ ๊ฐ์ฒด ๋ฆฌํฐ๋ด ๋ด๋ถ์์๋ ๊ณ์ฐ๋ ํ๋กํผํฐ ์ด๋ฆ์ผ๋ก ํ๋กํผํฐ ํค๋ฅผ ๋์ ์์ฑํ ์ ์๋ค.
//ES5๋ฒ์
var number = 'num';
var i = 0;
var obj = {};
obj[number + '-' + i++] = i;;
obj[number + '-' + i++] = i;;
obj[number + '-' + i++] = i;;
console.log(obj); // {num-0: 1, num-1: 2, num-2: 3}
//ES6๋ฒ์
var number = 'num';
var i = 0;
var obj = {
[`${number}-${i++}`] : i,
[`${number}-${i++}`] : i,
[`${number}-${i++}`] : i
};
console.log(obj); // {num-0: 1, num-1: 2, num-2: 3}
10.9.3 ๋ฉ์๋ ์ถ์ฝ ํํ
ES5์์ ๋ฉ์๋๋ฅผ ์ ์ํ๋ ค๋ฉด ํ๋กํผํฐ ๊ฐ์ผ๋ก ํจ์๋ฅผ ํ ๋นํ๋ค. ES6๋ถํฐ๋ ๋ฉ์๋๋ฅผ ์ ์ํ ๋ function ํค์๋๋ฅผ ์๋ตํ ์ถ์ฝ ํํ์ ์ฌ์ฉํ ์ ์๋ค. (์์ง ํจ์๋ฅผ ๋ฐฐ์ฐ์ง ์์์ผ๋ฏ๋ก ์์ธํ ๋ด์ฉ์ ํจ์๋ฅผ ๋ฐฐ์ด ํ ์ ๋ฆฌํ๊ณ ์ ํ๋ค.)
'๐ Language & CS knowledge > JavaScript (๋ชจ๋์๋ฐ์คํฌ๋ฆฝํธ Deep Dive)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
12์ฅ ํจ์ (0) | 2022.07.02 |
---|---|
11์ฅ ์์ ๊ฐ๊ณผ ๊ฐ์ฒด์ ๋น๊ต (0) | 2022.07.01 |
09์ฅ ํ์ ๋ณํ๊ณผ ๋จ์ถ ํ๊ฐ (0) | 2022.06.28 |
08์ฅ ์ ์ด๋ฌธ (0) | 2022.06.27 |
07์ฅ ์ฐ์ฐ์ (0) | 2022.06.25 |