ํ๋์ ๋ณ์์ ์ฌ๋ฌ ์์ฑ์ ์ง์ ํ ์ ์๋๋ก ํด์ฃผ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ์ฐธ์กฐํ ๋ฐ์ดํฐ ํ์ ์ค ํ๋์ด๋ค.
์๋ ์ด๋ฏธ์ง์ฒ๋ผkey
(์์ฑ์ด๋ฆ)value
(์์ฑ ๊ฐ)property
(์์ฑ)์ผ๋ก ์ฐ๊ฒฐ๋์ด ์์ผ๋ฉฐ, ๋ฐฐ์ด๊ณผ ๋ฌ๋ฆฌ ์์๊ฐ ์ค์ํ์ง ์๋ค.
๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ธฐ ์ํด์๋ ํ์์ฒ๋ผ ๋ณ์๋ฅผ ์ ์ธํ ๋ค์, ์ค๊ดํธ{...}๋ก key-value์ ์์ฑ ์์ ๋ฌถ์ด์ฃผ๋ฉด ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ๋ ๊ฐ์ฒด ๊ธฐ๋ฐ์ ์คํฌ๋ฆฝํธ ์ธ์ด์ด๋ฉฐ, ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด๋ฃจ๊ณ ์๋ ๊ฑฐ์ ๋ชจ๋ ๊ฒ์ด ๊ฐ์ฒด์ด๋ค. ์์ํ์ (Primitives)์ ์ ์ธํ ๋๋จธ์ง ๊ฐ๋ค(ํจ์, ๋ฐฐ์ด, ์ ๊ทํํ์ ๋ฑ)์ ๋ชจ๋ ๊ฐ์ฒด์ด๊ธฐ ๋๋ฌธ์ ์๋ฐ์คํฌ๋ฆฝํธ์์ ๊ฐ์ฒด๋ ํ์ ๋ถ๊ฐ๊ฒฐํ ์กด์ฌ๋ค.
๊ฐ์ฒด๋ ๋ฐ์ดํฐ๋ฅผ ์๋ฏธํ๋ ํ๋กํผํฐ(Property)์ ๋ฐ์ดํฐ๋ฅผ ์ฐธ์กฐํ๊ณ ์กฐ์ํ ์ ์๋ ๋์์ ์๋ฏธํ๋ ๋ฉ์๋(Method)๋ก ๊ตฌ์ฑ๋ ์งํฉ์ด๋ค. ๊ฐ์ฒด๋ ๋ฐ์ดํฐ(ํ๋กํผํฐ)์ ๊ทธ ๋ฐ์ดํฐ์ ๊ด๋ จ๋๋ ๋์(๋ฉ์๋)์ ๋ชจ๋ ํฌํจํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ์ ๋์์ ํ๋์ ๋จ์๋ก ๊ตฌ์กฐํํ ์ ์์ด ์ ์ฉํ๋ค.
๊ด๋ จ ์๋ ์ ๋ณด๋ค์ ์๋ก ์ฐ๊ฒฐํ๋ ๋ฐ์ ๊ฐ์ฒด๋ฅผ ํ์ฉํ๋ฉด, ๋ฐ์ดํฐ(Value)์ ๋ฌธ์์ด(Key)์ ์ฐ๊ด ์ง์ด์ ์ ์ฅํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฝ๋๋ฅผ ์ ์ง ๋ณด์ํ ๋์๋ ๋งค์ฐ ํธ๋ฆฌํ๋ค.
property
๊ฐ์ฒด๋ ํ๋กํผํฐ์ ์งํฉ์ด๋ค. ํ๋กํผํฐ๋ย key(ํค) : value(๊ฐ)์ ํ์์ผ๋ก ๊ฐ์ฒด ์์ ์ฝค๋ง(,)๋ก ๊ตฌ๋ถ๋์ด ํ ๋น๋๋ค.
key
์์ฑ๋ช ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฌธ์์ด๋ง ๊ฐ๋ฅํ์ง๋ง ๋ฐ์ดํ(โ โ)๋ ํ์์๋ค. ํ์ง๋ง ์ปดํจํฐ๊ฐ ๋ชจ๋ฅด๋ ์ธ์ด (์๋ฅผ ๋ค๋ฉด ํ๊ตญ์ด)๋ผ๋ฉด ๋ฐ์ดํ๊ฐ ํ์ํ๊ณ ๋์ด์ฐ๊ธฐ๊ฐ ์๋ ๊ฒฝ์ฐ์๋ ํ์ํ๋ค.
value
์์ฑ๊ฐ์ด๋ผ๊ณ ๋ ๋ถ๋ฅด๋ฉฐ, ์ด๋ค ๊ฐ์ด๋ ์ง (๋ฌธ์์ด, ์ซ์ ,๊ฐ์ฒด, ํจ์ ๋ฑ) ์๋ฌด๊ฑฐ๋ ์๊ด ์๋ค.
๊ฐ์ฒด์ ํจ์๋ฅผ ์ ์ํ ๊ฒฝ์ฐ, ์์ฑ๊ฐ์ด๋ผ๊ณ ํ์ง ์๊ณ ๋ฉ์๋(method)๋ผ๊ณ ๋ถ๋ฅธ๋ค.
let abc = {
a: 'a',
b: 'b',
c: 'c'
}
console.log(abc.a); //a ์ถ๋ ฅ
console.log(abc.b); //b ์ถ๋ ฅ
console.log(abc.c); //c ์ถ๋ ฅ
โบ ๊ฐ์ฒด.ํ๋กํผํฐ ํ์์ผ๋ก ๊ฐ์ ์ ๊ทผ์ด ๊ฐ๋ฅ
let abc = {
a: 'a',
b: 'b',
c: 'c'
}
console.log(abc['a']); //a ์ถ๋ ฅ
console.log(abc['b']); //b ์ถ๋ ฅ
console.log(abc['c']); //c ์ถ๋ ฅ
โบ ๊ฐ์ฒด['ํ๋กํผํฐ ์ด๋ฆ(ํค)'] ํ์์ผ๋ก ์ ๊ทผ์ด ๊ฐ๋ฅ
Dot Notation
vsBracket Notation
์ด ๋๊ฐ์ง์๋ ํฐ ์ฐจ์ด์ ์ด ์กด์ฌํ๋ค.
bracket notation์๋ dot notation์ด ๊ฐ์ง ๋ชปํ๋ ์ค์ํ ์ฉ๋๊ฐ ์๋ค ๋ฐ๋ก๋ณ์
์ ํ์ฉ์ด๋ค.
๋ฐ์ ์์๋ฅผ ๋ณด๋ฉด์ ๋ ์ ํํ๊ฒ ์ค๋ช ํด๋ณด์!
์ฐ์ myself ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ โผ
let myself={
name : 'Code Kim',
location : {
country : 'south korea',
city : 'Seoul'
},
age : 30
cats : ['๋ฅ์','๋ฅ๋'],
}
myself์ ์๋ cats ํค๊ฐ์ผ๋ก ๋ณ์๋ฅผ ์์ฑํ๊ณ โผ
let myKey = 'cats'
๋๊ฐ์ง ์ ๊ทผ๋ฒ์ผ๋ก ์ ๊ทผํด๋ณด์๋ฉดโผ
console.log(myself['cata']) // ["๋ฅ์","๋ฅ๋"]
console.log(myself[myKey]) // ["๋ฅ์","๋ฅ๋"]
console.log(myself.myKey) // undefined
โ ์ด๋ ๋ฏ ๊ดํธํ๊ธฐ๋ฒ์ ๋ณ์๋ฅผ ํ์ฉํ์ฌ ๊ฐ์ฒด๋ฅผ ์ ๊ทผํ ์ ์์ง๋ง ์ ํ๊ธฐ๋ฒ์ผ๋ก๋ ๋ณ์ํ์ฉํ์ง ๋ชปํ๋ค.
๐ก ์ด๋ ๊ฒ ํฐ ์ฐจ์ด์ ์ด ์๊ธฐ์ ๋๊ฐ์ง ์ ๊ทผ๋ฐฉ๋ฒ์ ์์๋ฌ์ผํ ํ์๊ฐ ์๋ค!!