[JavaScript] ๊ฐ์ฒด

๊ฒจ๋ ˆยท2025๋…„ 5์›” 25์ผ

๐Ÿ“ ๊ฐ์ฒด(Object)๋ž€?
๊ฐ์ฒด๋Š” ์ด๋ฆ„(key)๊ณผ ๊ฐ’(value)์˜ ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ.

  • ์—ฌ๋Ÿฌ ์†์„ฑ(์ •๋ณด)์„ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด์„œ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Œ.
  • ํ‚ค๋Š” ๋ฌธ์ž์—ด(๋˜๋Š” ์‹ฌ๋ณผ), ๊ฐ’์€ ์–ด๋–ค ์ž๋ฃŒํ˜•์ด๋“  ๊ฐ€๋Šฅ.

  • ์˜ˆ์‹œ

    • name, age, isStudent โžก๏ธ key
    • 'Alice', 25, true โžก๏ธ ๊ฐ๊ฐ์˜ value
    let person = {
      name: 'Alice',
      age: 25,
      isStudent: true
    };
    

โœ… ๋ฐฐ์—ด vs ๊ฐ์ฒด ์ฐจ์ด

  • ๋ฐฐ์—ด ๐Ÿ‘‰ ๊ฐ’๋“ค์˜ ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•  ๋•Œ
  • ๊ฐ์ฒด ๐Ÿ‘‰ ๊ฐ๊ฐ์˜ ๊ฐ’์— ์ด๋ฆ„์„ ๋ถ™์—ฌ ๊ด€๋ฆฌํ•  ๋•Œ
๊ตฌ๋ถ„๋ฐฐ์—ด (Array)๊ฐ์ฒด (Object)
๋ชฉ์ ์ˆœ์„œ ์žˆ๋Š” ๊ฐ’์„ ์ €์žฅ์ด๋ฆ„ ๋ถ™์€ ๊ฐ’์„ ์ €์žฅ
ํ‚ค/์ธ๋ฑ์Šค์ˆซ์ž ์ธ๋ฑ์Šค (0, 1, 2...)๋ฌธ์ž์—ด ํ‚ค ("name", "age"...)
์„ ์–ธ ๋ฐฉ์‹let arr = [1, 2, 3];let obj = { name: 'Tom', age: 20 };
๊ฐ’ ์ ‘๊ทผ ๋ฐฉ์‹arr[0]obj.name ๋˜๋Š” obj['name']
์ˆœํšŒ ๋ฐฉ์‹for, forEach, map, for...offor...in, Object.keys() ๋“ฑ
์šฉ๋„๋ฆฌ์ŠคํŠธ, ๋ชฉ๋ก, ์ˆœ์ฐจ์  ๋ฐ์ดํ„ฐ๊ฐœ์ฒด์˜ ์†์„ฑ ์ •๋ณด ์ €์žฅ (์˜ˆ: ์‚ฌ์šฉ์ž ์ •๋ณด)

โœ… ๊ฐ์ฒด์˜ ์ƒ์„ฑ

โ‘  ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด(Object Literal)

  • ์ค‘๊ด„ํ˜ธ { } ์•ˆ์— key: value ํ˜•์‹์œผ๋กœ ์ •์˜
  • ๊ฐ€์žฅ ํ”ํ•œ ๋ฐฉ๋ฒ•
const person = {
  name: 'Alice',
  age: 25,
  isStudent: true
};

โ‘ก ์ƒ์„ฑ์ž ํ•จ์ˆ˜(Constructor Function)

  • this๋ฅผ ์‚ฌ์šฉํ•ด ์†์„ฑ์„ ์ •์˜
  • new ํ‚ค์›Œ๋“œ๋กœ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑ
function Person(name, age) {
  this.name = name;
  this.age = age;
}

const person1 = new Person('Bob', 30);

โ‘ข new Object( ) ์ƒ์„ฑ์ž ์‚ฌ์šฉ

  • ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์†์„ฑ์„ ์ (.)์œผ๋กœ ์ถ”๊ฐ€
const person = new Object();
person.name = 'Charlie';
person.age = 28;

โ‘ฃ Object.create( ) ์‚ฌ์šฉ

  • ํ”„๋กœํ† ํƒ€์ž… ๊ธฐ๋ฐ˜
  • proto ๊ฐ์ฒด๋ฅผ ์ƒ์†๋ฐ›์€ ์ƒˆ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ
  • ์ฃผ๋กœ ์ƒ์†์ด๋‚˜ ๊ฐ์ฒด ๋ณต์ œ ์šฉ๋„๋กœ ์‚ฌ์šฉ
const proto = {
  greet() {
    console.log('Hello!');
  }
};

const person = Object.create(proto);
person.name = 'Daisy';



โœ… ๊ฐ์ฒด์™€ ๋ฐ˜๋ณต๋ฌธ

โ‘  for...in ๋ฌธ

  • ๊ฐ์ฒด์˜ ๋ชจ๋“  key(์†์„ฑ ์ด๋ฆ„)์„ ์ˆœํšŒ
  • key๋Š” ๋ฌธ์ž์—ด๋กœ ๋‚˜์˜ด
  • user[key]๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ํ‚ค์˜ ๊ฐ’์„ ๊ฐ€์ ธ์˜ด
const user = {
  name: 'Alice',
  age: 25,
  isStudent: true
};

for (let key in user) {
  console.log(key);        // ํ‚ค ์ถœ๋ ฅ: name, age, isStudent
  console.log(user[key]);  // ๊ฐ’ ์ถœ๋ ฅ: Alice, 25, true
}

โ‘ก Object.keys( ) + forEach( )

  • key ๋ฐฐ์—ด์„ ์ˆœํšŒ
  • ๋ฐฐ์—ด์ฒ˜๋Ÿผ forEach( )๋กœ ์ˆœํšŒ ๊ฐ€๋Šฅ
Object.keys(user).forEach(function(key) {
  console.log(key, user[key]);
});

โ‘ข Object.entries( )

  • ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น์„ ์‚ฌ์šฉํ•ด์„œ key์™€ value๋ฅผ ๋™์‹œ์— ๊บผ๋‚ผ ์ˆ˜ ์žˆ์Œ
  • Object.entries(user)๋Š” [["name", "Alice"], ["age", 25], ["isStudent", true]] ํ˜•ํƒœ
for (let [key, value] of Object.entries(user)) {
  console.log(`${key}: ${value}`);
}
profile
ํ˜ธ๋–ก ์‹ ๋ฌธ์ง€์—์„œ ๊ฐœ๋ฐœ์ž๋กœ ํ™˜์ƒ

0๊ฐœ์˜ ๋Œ“๊ธ€