2025. 8. 19. 12:05ใFront-end/JavaScript

๋ชฉ์ฐจ
1. ๊ฐ์ฒด๋?
2. ๊ฐ์ฒด ์์ฑํ๊ธฐ
2-1. Object() ์์ฑ์ ํจ์
2-2. ๊ฐ์ฒด ๋ฆฌํฐ๋ด {}
2-3. ์ง์ ์ ์ ์์ฑ์ ํจ์
3. ํ๋กํผํฐ ์ ๊ทผํ๊ธฐ
4. ํ๋กํผํฐ ์ถ๊ฐ/์ญ์ ํ๊ธฐ
5. in ์ฐ์ฐ์์ for...in ๋ฐ๋ณต๋ฌธ
5-1. in ์ฐ์ฐ์
5-2. for...in ๋ฐ๋ณต๋ฌธ
6. ํ๋กํผํฐ ์ ๋ ฌ ๋ฐฉ์
1. ๊ฐ์ฒด๋?
ํ๋กํผํฐ(ํค:๊ฐ)์ ํํ๋ก ์ฌ๋ฌ ๊ฐ์ ํฌํจํ๋ ์ปจํ ์ด๋๋ก, ๋ด๋ถ ๊ฐ์ ์ผ๋ง๋ ์ง ๋ณ๊ฒฝํ ์ ์๋ค.
- ํค (key) : ์ซ์, ๋ฌธ์์ด, ์ฌ๋ณผ๋ง ์ฌ ์ ์๋ค.
ํค ๊ฐ์ ๋ฐ์ดํ""๋ก ๊ฐ์ธ์ง ์๊ณ ๊ทธ๋ฅ ์์ฑํด๋ ๋์ง๋ง, ์๋ 3๊ฐ์ง ๊ฒฝ์ฐ์๋ ๋ฐ๋์ ๋ฐ์ดํ๋ก ๊ฐ์ธ์ฃผ์ด์ผ ํ๋ค.
1. ์ฒซ ๋ฒ์งธ ๊ธ์๊ฐ ๋ฌธ์, ๋ฐ์ค(_), ๋ฌ๋ฌ ๊ธฐํธ($)๋ก ์์ํ์ง ์์ ("1stCourse")
2. ๋์ด์ฐ๊ธฐ๊ฐ ํฌํจ๋จ ("brand Name")
3. ํ์ดํ(-)์ด ํฌํจ๋จ ("born-year") - ๊ฐ (value) : ์ด๋ค ํํ์์ด๋ ์ฌ ์ ์๋ค.
2. ๊ฐ์ฒด ์์ฑํ๊ธฐ
๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ 3๊ฐ์ง์ด๋ค.
- Object() ์์ฑ์ ํจ์ ์ด์ฉ
- ๊ฐ์ฒด ๋ฆฌํฐ๋ด {} ์ด์ฉ
- ์ง์ ์ ์ํ ์์ฑ์ ํจ์ ์ด์ฉ
1. Object() ์์ฑ์ ํจ์
๊ฐ์ฒด ๋ฆฌํฐ๋ด์ ์ฌ์ฉํ๋ ๊ฒ์ด ํจ์ฌ ๊ฐ๊ฒฐํ๊ธฐ ๋๋ฌธ์ ๊ฑฐ์ ์ฌ์ฉ๋์ง ์๋๋ค.
const obj = new Object();
//ํ๋กํผํฐ ์์ฑ ์
obj.id = 'id';
obj.name= 'name';
2. ๊ฐ์ฒด ๋ฆฌํฐ๋ด {}
์ค๊ดํธ ๋ด๋ถ์ ์๋ฌด ํ๋กํผํฐ๋ ์ ์ํ์ง ์์ผ๋ฉด ๋น ๊ฐ์ฒด๊ฐ ์์ฑ๋๋ค.
const obj = {
id: 'id',
name: 'name'
};
3. ์ง์ ์ ์ ์์ฑ์ ํจ์
๋์ผํ ํํ์ ๊ฐ์ฒด๋ฅผ ์ฝ๊ฒ ์์ฑํด์ ์ฌ์ฉํ ์ ์๋ค.
ํ์์ ์ ํด์ ธ์์ง ์์ผ๋ฉฐ, new ํค์๋๋ฅผ ์ฌ์ฉํด ํจ์๋ฅผ ํธ์ถํ๋ฉด ์์ฑ์ ํจ์๋ก ๋์ํ๋ค.
function Vehicle(type) {
this.type = type;
}
const car new Vehicle('Car'); //type: 'Car'
- ์ผ๋ฐ ํจ์์์ ๊ตฌ๋ถ์ ์ํด ์์ฑ์ ํจ์ ์ด๋ฆ์ ์ฒซ ๊ธ์๋ฅผ ๋๋ฌธ์๋ก ํ๊ธฐํ๋ฉด ์ข๋ค.
- ํน์ ํ ํํ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ฑฐ๋ ์์๋ฐ๊ณ ์ถ์ ๋ ์์ฑ์ ํจ์๋ฅผ ์ฌ์ฉํ๋ค.
3. ํ๋กํผํฐ ์ ๊ทผํ๊ธฐ
์ , ๋๊ดํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ ๊ทผํ๋ค.
์ ํ๊ธฐ๋ฒ์ ๊ฐ๊ฒฐํ์ฌ ๋ง์ด ์ฌ์ฉํ๋ค.
obj = {
last-name: 'bang',
name: 'dayeon',
age: 26,
hobby: {
game: 'leage of legend',
book: '๋ฌผ๊ณ ๊ธฐ๋ ์กด์ฌํ์ง ์๋๋ค'
}
do: function sayHi() {
console.log('hi');
},
}
console.log(obj.age); // ์ ํ๊ธฐ๋ฒ์ผ๋ก ์ ๊ทผ
console.log(obj.hobby.game); // ๊ฐ์ฒด ์ ๊ฐ์ฒด์ ์ ๊ทผ
๋ณ์๋ฅผ ์ด์ฉํด ํ๋กํผํฐ์ ์ ๊ทผํ๊ฑฐ๋, ์ ๊ทผํ๋ ค๋ ํ๋กํผํฐ ๋ช ์ ์ฐ์ฐ์/๊ณต๋ฐฑ์ด ํฌํจ๋์ด์๋ค๋ฉด ๋๊ดํธ ํ๊ธฐ๋ฒ์ ์ฌ์ฉํด์ผํ๋ค.
const prop = 'age';
let key = prompt("์ด๋ค ์ ๋ณด๊ฐ ํ์ํ๊ฐ์?", "name");
obj[prop];
obj['last-name'];
alert( obj[name] );
๊ฐ์ฒด์ ์กด์ฌํ์ง ์๋ ํ๋กํผํฐ์ ์ ๊ทผํ๋ฉด undefined๋ฅผ ๋ฐํํ๋ค.
4. ํ๋กํผํฐ ์ถ๊ฐ/์ญ์ ํ๊ธฐ
๊ฐ๋จํ๊ฒ ํ๋กํผํฐ ์ถ๊ฐ์ ์ญ์ ๋ฅผ ํ ์ ์๋ค.
obj.isAdmin = true; // ์ถ๊ฐ
delete obj.age; // ์ญ์
5. in ์ฐ์ฐ์์ for...in ๋ฐ๋ณต๋ฌธ
1. in ์ฐ์ฐ์
in ์ฐ์ฐ์๋ก ๊ฐ์ฒด์ ํ๋กํผํฐ ์กด์ฌ ์ฌ๋ถ๋ฅผ ํ์ธํ ์ ์๋ค.
let user = {
name: "John",
age: 30,
};
alert( "age" in user ); // true
alert( "blabla" in user ); // false
2. for...in ๋ฐ๋ณต๋ฌธ
for...in ๋ฐ๋ณต๋ฌธ์ผ๋ก ๊ฐ์ฒด์ ๋ชจ๋ ํค๋ฅผ ์ํํ ์ ์๋ค.
let user = {
name: "John",
age: 30,
isAdmin: true,
};
for(let key in user) {
alert(key); // name, age, isAdmin
alert(user[key]); // John, 30, true
}
6. ํ๋กํผํฐ ์ ๋ ฌ ๋ฐฉ์
๊ฐ์ฒด์ ํ๋กํผํฐ๋ ํน๋ณํ ๋ฐฉ์์ผ๋ก ์ ๋ ฌ๋๋ค.
let codes = {
"49": "๋
์ผ",
"41": "์ค์์ค",
"44": "์๊ตญ",
//...
"1": "๋ฏธ๊ตญ",
};
for (let code in codes) {
alert(code); // 1, ..., 41, 44, 49
}
- ์ ์ ํ๋กํผํฐ๋ ์๋์ผ๋ก ์ ๋ ฌ๋๋ค
- ๊ทธ ์ธ์ ํ๋กํผํฐ๋ ์ถ๊ฐํ ์์ ๊ทธ๋๋ก ์ ๋ ฌ๋๋ค.
์์ ๊ฒฝ์ฐ, ์์ +๋ฅผ ๋ถ์ฌ์ ์ ์์ทจ๊ธ๋์ง ์๋๋ก ํ๋ฉด ์ถ๊ฐํ ์์๋๋ก ์ ๋ ฌ๋๋ค.
์ฐธ๊ณ
'Front-end > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| B14 : ๊ฐ์ฒด์ ๋ณต์ฌ (0) | 2025.08.19 |
|---|---|
| B13 : ์ ๊ทผ์ ํ๋กํผํฐ (Accessor Property) (0) | 2025.08.19 |
| ํธ๋์คํ์ผ๋ฌ์ ํด๋ฆฌํ (2) | 2025.08.19 |
| B11 : ํจ์ ๋ด์ฅ ๋ฉ์๋ (1) | 2025.08.17 |
| B10 : ํจ์์ this ํค์๋ (8) | 2025.08.16 |
GitHub