
JavaScript์ ๋ชจ๋ ๊ฒ์ ๊ฐ์ฒด๋ผ๋ ๋ง์ ๋ค์ด๋ดค์ ๊ฒ์ด๋ค.
์ด๋ฒ ๊ธ์์๋, ๊ฐ์ฒด๋ ๋ฌด์์ธ์ง, ๊ทธ๋ฆฌ๊ณ ๋ํ์ ์ธ ๊ฐ์ฒด ์์ฑ ๋ฐฉ๋ฒ์ธ ๊ฐ์ฒด ๋ฆฌํฐ๋ด์ ๋ํด ์์๋ณด์.
JavaScript๋ Object ๊ธฐ๋ฐ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ด๋ค.
JavaScript์๋ ์์ํ์ ๊ณผ ๊ฐ์ฒดํ์ ์ด ์๋๋ฐ, ๋ชจ๋ ๊ฒ์ด ๊ฐ์ฒด๋ผ๋ ์๊ฐํด๋ ๋ฌด๋ฐฉํ๋ค.
์์ ํ์
: ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ๊ฐ
๋จ ํ๋์ ๊ฐ๋ง์ ๋ํ๋ธ๋ค
๊ฐ์ฒด ํ์
: ๋ณ๊ฒฝ ๊ฐ๋ฅํ ๊ฐ
๋ค์ํ type์ ๊ฐ์, ํ๋์ ๋จ์๋ก ๊ตฌ์ฑํด ๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค
๊ฐ์ฒด๋, 0๊ฐ ์ด์์ property๋ก ๊ตฌ์ฑ๋ ์งํฉ์ด๋ค.
JavaScript์ ๋ชจ๋ ๊ฐ์ property๊ฐ ๋ ์ ์์ผ๋ฉฐ,
property๊ฐ ํจ์์ธ ๊ฒฝ์ฐ, ์ด๋ฅผ method๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๋ค์ ์ ๋ฆฌํ์๋ฉด ๊ฐ์ฒด๋, property์ method๋ก ๊ตฌ์ฑ๋ ์งํฉ์ธ ๊ฒ์ด๋ค.
property๋ ๊ฐ์ฒด์ ์ํ๊ฐ์ ๋ํ๋ด๋ ๊ฐ์ด๋ฉฐ,
method๋ property์ ์ํdata๋ฅผ ์ฐธ์กฐํ๊ณ ์กฐ์ํ ์ ์๋ ๋์์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
๋ค์ property๋ก ๋์๊ฐ์.
property๋ผ๋ ๊ฑด, key์ value๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
key naming์ ํ ๋, ๋ฐ๋์ ์๋ณ์ ๊ท์น์ ๋ฐ๋ผ์ผํ๋ ๊ฒ์ ์๋๋ค.
๊ทธ๋ฌ๋ JavaScript ์์ง์ด key๋ฅผ ํํ์์ผ๋ก ์คํดํด ์๋ชป ์๋ํ์ง ์๋๋ก, ๊ท์น์ ์ง์ผ์ฃผ๋ ๊ฒ์ด ์ข๋ค.
property์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ ๋๊ฐ์ง๊ฐ ์๋ค.
. dot notation
์ ํ๊ธฐ๋ฒ์, ๋ง์นจํ property ์ ๊ทผ ์ฐ์ฐ์๋ผ๊ณ ๋ ํ๋ค.
[...] bracket notation
๋๊ดํธ ํ๊ธฐ๋ฒ์, ๋๊ดํธ property ์ ๊ทผ ์ฐ์ฐ์๋ผ๊ณ ๋ ํ๋ค.
ํํ์ ๋ค์ ์ ๊ทผ ์ฐ์ฐ์๋ฅผ ๋ถ์ฌ์ฃผ๋ฉด ๋๋ค.
์ด๋ ํํ์์ ๊ฐ์ฒด๋ก ํ๊ฐ๋๋ ํํ์์ด์ด์ผ ํ๋ฉฐ,
๊ฐ์ฒด์ ์กด์ฌํ์ง ์๋ property์ ์ ๊ทผํ๋ฉด undefined๋ฅผ ๋ฐํํ๋ค.
bracket notation [] ์์๋ property key๋ฅผ ์ง์ ํด์ผํ๋ฉฐ, ์ด๋ ๋ฐ์ดํ '' ๋ก ๊ฐ์ผ ๋ฌธ์์ด์ด์ด์ผ ํ๋ค.
๋ง์ฝ property key๊ฐ JavaScript์ ๋ค์ด๋ฐ ๊ท์น์ ์ค์ํ์ง ์์์ ๊ฒฝ์ฐ,
๋ฐ๋์ dot notation์ด ์๋, ๋๊ดํธ ํ๊ธฐ๋ฒ์ ์ฌ์ฉํด์ผ ํ๋ค๊ณ ํ๋ค.
์ด๋ฏธ ์กด์ฌํ๋ property์ ๊ฐ์ ํ ๋นํ๋ฉด ๊ฐฑ์ ๋๋ค.
์กด์ฌํ์ง ์๋ property์ ๊ฐ์ ํ ๋นํ๋ฉด ์ด๋ค ์ผ์ด ์ผ์ด๋ ๊น?
property๊ฐ ๋์ ์ผ๋ก ์์ฑ & ์ถ๊ฐ๋๊ณ , property ๊ฐ์ด ํ ๋น๋๋ค.
delete ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํด์ ๊ฐ์ฒด์ property๋ฅผ ์ญ์ ํ๋ค.
delete ์ฐ์ฐ์์ ํผ์ฐ์ฐ์๋, property ๊ฐ์ ์ ๊ทผํ ์ ์๋ ํํ์์ด์ด์ผ ํ๋ค.
๋ง์ฝ ์กด์ฌํ์ง ์๋ property๋ฅผ ์ญ์ ํ ๊ฒฝ์ฐ, error ์์ด ๋ฌด์๋๋ค๊ณ ํ๋ค.
๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ค์ํ๋ค.
์์ ์ ์ด๋ ๋ฐ์ ๊ฐ์ด 5๊ฐ์ง์ ๋ฐฉ๋ฒ์ด ์๋ค.
์ด๋ฒ ๊ธ์์๋ ๊ฐ์ฒด ๋ฆฌํฐ๋ด์ ๋ํด ์ดํด๋ณด๊ฒ ๋ค
(๋๋จธ์ง ๋ฐฉ๋ฒ๋ค์, ํจ์์ ๋ํ ๊ธ์ ์ ๋ฆฌํ ๋ค์ ์ดํด๋ณด์)
literal์, ์ฌ๋์ด ์ดํดํ ์ ์๋ ๋ฌธ์/์ฝ์๋ ๊ธฐํธ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ ์์ฑํ๋ ํ๊ธฐ๋ฒ์ด๋ค.
๊ฐ์ฒด ๋ฆฌํฐ๋ด์, {}๋ด์ 0๊ฐ ์ด์์ property๋ฅผ ์ ์ํด์ฃผ๋ฉด ๋๋ค.
์ ๊ธฐํ๊ฒ๋ ๊ทธ๋ฅ ์ซ์, ๋ฌธ์์ด์ ์์ฑ๊ณผ ๋น์ทํ๊ฒ ๋ฆฌํฐ๋ด๋ก ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค.
๊ฐ๋จํ ๋ฐฉ๋ฒ์ด์ง๋ง, ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๊ฐ์ฒด ์์ฑ ๋ฐฉ๋ฒ์ด๋ค.
(0๊ฐ์ property๋ฅผ ์ ์ํ ๊ฒฝ์ฐ ๋น๊ฐ์ฒด๊ฐ ์์ฑ๋๋ค.)
JavaScript ์์ง์ด, ๋ณ์๊ฐ ํ ๋น๋๋ ์์ ์ ๊ฐ์ฒด ๋ฆฌํฐ๋ด์ ํด์ํด์, ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค.
์ฃผ์ํ ์ ์, ์ด๋์ ์ฌ์ฉํ๋ {}๋ code block์ด ์๋๋ผ๋ ์ฌ์ค์ด๋ค.
๋๋ฌธ์ {}๋ค์ ;์ ๋ถ์ด๋ ๊ฒ์ ๊ถ์ฅํ๋ค๊ณ ํ๋ค.
๊ฐ์ฒด ๋ฆฌํฐ๋ด์ด๋ผ๋ ๊ฐ์ฒด ์์ฑ ๋ฐฉ๋ฒ์ด, JavaScript์๊ฒ ์ ์ฐ์ฑ๊ณผ ๊ฐ๋ ฅํจ์ด๋ผ๋ ์์์ด๋ฅผ ๋ถ์ฌ์ฃผ์๋ค๊ณ ์๊ฐํด๋ ๋ ๊ฒ ๊ฐ๋ค.
๊ฐ์ฒด ๋ฆฌํฐ๋ด์ property๋ฅผ ํฌํจ์์ผ์, ๊ฐ์ฒด๋ฅผ ์์ฑํจ๊ณผ ๋์์ property๋ฅผ ๋ง๋ค ์๋ ์๊ณ ,
๋๋ ๊ฐ์ฒด ์์ฑ ์ดํ์ ๋์ ์ผ๋ก ๋ง๋ค ์๋ ์๋ค.
property ์ด๋ฆ๊ณผ property key๊ฐ ๋์ผํ ๊ฐ์ผ ๊ฒฝ์ฐ์ ์ ์ฉ๋๋ค.
ํด๋น ๊ฒฝ์ฐ property key๋ฅผ ์๋ตํด๋ ๋๋ค!
๋ฌธ์์ด( ๋๋ ๋ฌธ์์ด๋ก type ๋ณํ์ด ๊ฐ๋ฅํ ๊ฐ)์ผ๋ก ํ๊ฐ๋๋ ํํ์์ ์ฌ์ฉํด์,
property key๋ฅผ ๋์ ์ผ๋ก ์์ฑํ ์ ์๋ค
ES5์์ method๋ฅผ ์ ์ํ๋ ค๋ฉด, property ๊ฐ์ผ๋ก ํจ์๋ฅผ ํ ๋นํด์ผ ํ๋ค.
ES6์์๋, function keyword๋ฅผ ์๋ตํ ์ถ์ฝ ํํ์ ์ฌ์ฉํ ์ ์๋ค.
(์ด๋ฐ ๋ฐฉ๋ฒ์ ํตํด ๋ง๋ method๋, property์ ํ ๋นํ ํจ์์๋ ๋ค๋ฅด๊ฒ ๋์ํ๋ค.)
๊ฐ์ฒด๊ฐ JavaScript์์ ๊ต์ฅํ ์ค์ํ ๊ฐ๋ ์ด๋ผ๊ณ ๋ค์ด์์, ์ด์ฌํ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค.
์ ์ ๋ฆฌ๋ ๊ธ์ด ์๋ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ค์ง๋ง,,,,,
JavaScript์ ๊ฐ์ฒด๊ฐ ์ด๋ป๊ฒ ๊ฐ์ ์ด ๋๋ ๊ฐ๋ ์ธ์ง ์ ๋๋ ์ดํดํด๋ธ ๊ฒ ๊ฐ์ ๋ง์กฑํ๋ค.