B12 : ๊ฐ์ฒด

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๊ฐ€์ง€์ด๋‹ค.

  1. Object() ์ƒ์„ฑ์ž ํ•จ์ˆ˜ ์ด์šฉ
  2. ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด {} ์ด์šฉ
  3. ์ง์ ‘ ์ •์˜ํ•œ ์ƒ์„ฑ์ž ํ•จ์ˆ˜ ์ด์šฉ

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
}

 

  • ์ •์ˆ˜ ํ”„๋กœํผํ‹ฐ๋Š” ์ž๋™์œผ๋กœ ์ •๋ ฌ๋œ๋‹ค
  • ๊ทธ ์™ธ์˜ ํ”„๋กœํผํ‹ฐ๋Š” ์ถ”๊ฐ€ํ•œ ์ˆœ์„œ ๊ทธ๋Œ€๋กœ ์ •๋ ฌ๋œ๋‹ค.

์œ„์˜ ๊ฒฝ์šฐ, ์•ž์— +๋ฅผ ๋ถ™์—ฌ์„œ ์ •์ˆ˜์ทจ๊ธ‰๋˜์ง€ ์•Š๋„๋ก ํ•˜๋ฉด ์ถ”๊ฐ€ํ•œ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌ๋œ๋‹ค.

 

 

 

์ฐธ๊ณ 

๋ฐ˜์‘ํ˜•