๐Object(๊ฐ์ฒด)
๊ฐ์ฒด๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐ์ดํฐ ํ์ ์ค์ ํ๋์ด๋ฉฐ, ์์ด๋ก๋ object๋ผ๊ณ ํํํฉ๋๋ค.
key๊ฐ๊ณผ value๊ฐ์ ์์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , ๋ฐฐ์ด๊ณผ๋ ๋ค๋ฅด๊ฒ ์์๊ฐ ์ค์ํ์ง ์์ต๋๋ค.
๊ฐ์ฒด๋ 0๊ฐ ์ด์์ ํ๋กํผํฐ๋ก ๊ตฌ์ฑ๋ ์งํฉ์ด๋ค.
ํ๋กํผํฐ๋ {key:value}๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
let person={
name:"lee",
age:20,
major:'physics'
}
์ด๋ฐ ๊ฐ์ฒด๋ ๊ฐ์ฒด ๋ฆฌํฐ๋ด(object literal) ์ด๋ผ๊ณ ๋ถ๋ฆ
๋๋ค. ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ ์ปจํ
์ธ ๋ฅผ ๊ทธ๋๋ก ๋์
ํฉ๋๋ค. ๊ฐ์ฒด ๋ฆฌํฐ๋ด์ ํด๋์ค๋ก๋ถํฐ ์์ฑํ๋ ๋ฐฉ์๊ณผ๋ ๋ค๋ฆ
๋๋ค.
๊ฐ์ฒด ๋ฆฌํฐ๋ด์ ์ฌ์ฉํด์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๊ฒ์ ์ฐ์๋ ๊ตฌ์กฐ์ฒด๋ ์ฐ๊ด๋ ๋ฐ์ดํฐ๋ฅผ ์ผ์ ํ ๋ฐฉ๋ฒ์ผ๋ก ๋ณํํ๊ณ ์ ํ ๋ ๋ง์ด ์ฐ์ด๋ ๋ฐฉ๋ฒ์ด๋ค. ์๋ฅผ ๋ค๋ฉด ์๋ฒ์๊ฒ ์ฃผ์๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฃ์ด๋ฌ๋ผ๊ณ ์์ฒญํ๋ ๊ฒฝ์ฐ์ด๋ค. ๊ฐ ์์ดํ
๋ค์ ํ๋ ํ๋ ๊ฐ๋ณ ์ ์กํ๋ ๊ฒ๋ณด๋ค, ํ๋์ ๊ฐ์ฒด๋ฅผ ์ ์กํ๋ ๊ฒ์ด ํจ์ฌ ํจ์จ์ ์. ๋ ๊ฐ ์์ดํ
๋ค์ ์ด๋ฆ์ผ๋ก ๊ตฌ๋ถํด์ ์ฌ์ฉํ๊ธฐ ์ํ ๋๋ ๋ฐฐ์ด์ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ์ฝ๋ค.
Dot Notation vs Bracket Notation
๐น Dot Notation(์ ํ๊ธฐ๋ฒ)
-.(์จ์ )์ ์ด์ฉํ๋ ๋ฐฉ๋ฒ
person.name;
person.age;
๊ฐ์ฒด ์ด๋ฆ(person)์ ๋ค์์คํ์ด์ค์ฒ๋ผ ๋์ํฉ๋๋ค. ๊ฐ์ฒด๋ด์ ์บก์ํ๋์ด์๋๊ฒ์ ์ ๊ทผํ๋ ค๋ฉด ๋จผ์ ์ ์ ์ ๋ ฅํด์ผํฉ๋๋ค. ๊ทธ ๋ค์ ์ ์ ์ฐ๊ณ ์ ๊ทผํ๊ณ ์ ํ๋ ํญ๋ชฉ์ ์ ์ต๋๋ค. ๊ฐ๋จํ ํ๋กํผํฐ์ ์ด๋ฆ์ผ ์๋ ์์ ๊ฒ์ด๊ณ , ๋ฐฐ์ด์ ์ผ๋ถ์ด๊ฑฐ๋ ๊ฐ์ฒด์ ๋ฉ์๋๋ฅผ ํธ์ถํ ์๋ ์์ต๋๋ค.
let person={
name:{"first":"hj","last":"lee"},
age:20,
major:'physics'
}
person.name.first;
//
"hj"
ํ์ namespace ๋ค์ ์ ์ ์ฐ์ด์ฃผ๋ฉด ๋๋ค.
๐น Bracket Notation
-[]๊ณผ ''์ ์ด์ฉํ๋ ๋ฐฉ๋ฒ
person['name'];
person.['age'];
์ด๋ฐ ๋ฐฉ์์ ๋ฐฐ์ด ์์ ์๋ ํญ๋ชฉ์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ๊ณผ ๋งค์ฐ ์ ์ฌํด ๋ณด์ด๋๋ฐ ์ค์ ๋ก๋ ์ด๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋์ผํ ๊ฒ์ ๋๋ค. ํ ํญ๋ชฉ์ ์ ํํ๊ธฐ ์ํด ์ธ๋ฑ์ค ์ซ์๋ฅผ ์ด์ฉํ๋ ๋์ ์ ๊ฐ ๋ฉค๋ฒ์ ๊ฐ๋ค๊ณผ ์ฐ๊ฒฐ๋ ์ด๋ฆ์ ์ด์ฉํฉ๋๋ค. ๊ฐ์ฒด๊ฐ ๊ฐํน ์ฐ๊ด๋ฐฐ์ด (associative arrays)์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ ๊ฒ์ด ๋น์ฐํฉ๋๋ค. ์ฐ๊ด๋ฐฐ์ด์ ๋ฐฐ์ด์ด ์ซ์๋ฅผ ๊ฐ์ ์ฐ๊ฒฐํ๋ ๊ฒ๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ๋ฌธ์์ด์ ๊ฐ์ ๋งคํํฉ๋๋ค.
let person={
name:{"first":"hj","last":"lee"},
age:20,
major:'physics'
}
person['name']['first'];
//
"hj"