Hello Kitty Eyes Shut
๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ป๊ณต๋ถ€ ๊ธฐ๋ก/๐Ÿ“Œ ๋ฆฌ์•กํŠธ ๊ธฐ์ดˆ ์Šคํ„ฐ๋””

[๋ฆฌ์•กํŠธ ๊ธฐ์ดˆ ์Šคํ„ฐ๋””] JavaScript ๊ฐ์ฒด(Object)

๋ฐ˜์‘ํ˜•

 

 

 

 

 

 

๐Ÿ“‘ JavaScript ๊ฐ์ฒด(Object)

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๊ฐ์ฒด(Object)๋Š” ํ˜„์‹ค ์„ธ๊ณ„์˜ ์‚ฌ๋ฌผ์ด๋‚˜ ๊ฐœ๋…์„ ํ‘œํ˜„ํ•˜๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด ์‚ฌ๋žŒ์„ ํ‘œํ˜„ํ•˜๋ ค๋ฉด ์ด๋ฆ„(name), ๋‚˜์ด(age), ์ทจ๋ฏธ(hobby) ๊ฐ™์€ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜๊ณ ,

์ž๋™์ฐจ๋ฅผ ํ‘œํ˜„ํ•˜๋ ค๋ฉด ๋ธŒ๋žœ๋“œ(brand), ์ƒ‰์ƒ(color), ์†๋„(sped) ๊ฐ™์€ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•  ๊ฒƒ์ด๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ ๊ฒƒ๋“ค์„ ํ‚ค-๊ฐ’ ์Œ(key-value pair)์˜ ๊ฐ์ฒด๋กœ ํ‘œํ˜„ํ•˜๋ฉด,

์—ฌ๋Ÿฌ ์ •๋ณด๋ฅผ ํ•˜๋‚˜์˜ ๋ฉ์–ด๋ฆฌ๋กœ ๋ฌถ์–ด ์‰ฝ๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

 

์ฆ‰, ๊ทธ๋ƒฅ ๊ฐ์ฒด๋Š” ์ •๋ณด๋ฅผ ๋ฌถ์–ด์„œ ํ‘œํ˜„ํ•˜๋Š” ๊ทธ๋ฆ‡ ์ •๋„๋กœ ์ดํ•ดํ•˜๋ฉด ๋œ๋‹ค.

 

 


๐ŸŸฅ ๊ฐ์ฒด ์ƒ์„ฑ ๋ฐฉ๋ฒ•

๊ฐ์ฒด๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์—๋Š” ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

let obj1 = new Object(); // ๊ฐ์ฒด ์ƒ์„ฑ์ž ๋ฐฉ์‹
let obj2 = {};           // ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด ๋ฐฉ์‹

 

 


๐ŸŸง ๊ฐ์ฒด ํ”„๋กœํผํ‹ฐ (์†์„ฑ)

๊ฐ์ฒด ์•ˆ์—๋Š” key: value ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๊ฒŒ ๋œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ์—์„œ์˜ key๋ฅผ ํ”„๋กœํผํ‹ฐ(property)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

let person = {
  name: "ssosso",
  age: 24,
  hobby: "ํ…Œ๋‹ˆ์Šค",
  "is student": true, // ์ด๋ ‡๊ฒŒ ๋„์–ด์“ฐ๊ธฐ๊ฐ€ ์žˆ๋Š” key๋Š” ๋”ฐ์˜ดํ‘œ๋กœ ๋ฌถ์–ด์ค˜์•ผ ํ•จ
}

 

  • name, age ,hobby, "is student" ๐Ÿ‘‰๐Ÿป key (ํ”„๋กœํผํ‹ฐ ์ด๋ฆ„)
  • "ssosso", 24, "ํ…Œ๋‹ˆ์Šค", true ๐Ÿ‘‰๐Ÿป value (ํ”„๋กœํผํ‹ฐ ๊ฐ’)

 

์ถ”๊ฐ€๋กœ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ ๊ฐ’์œผ๋กœ๋Š”

๋ฌธ์ž์—ด, ์ˆซ์ž, ๋ถˆ๋ฆฌ์–ธ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ํ•จ์ˆ˜๋‚˜ ๋ฐฐ์—ด, ๋˜ ๋‹ค๋ฅธ ๊ฐ์ฒด๊นŒ์ง€ ์˜ฌ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.

(์ฆ‰, ๊ฐ์ฒด ์•ˆ์— ๊ฐ์ฒด๋ฅผ ๋„ฃ์„ ์ˆ˜๋„ ์žˆ๊ณ , ๊ฐ์ฒด ์•ˆ์— ํ•จ์ˆ˜(๋ฉ”์„œ๋“œ)๋ฅผ ๋„ฃ์„ ์ˆ˜๋„ ์žˆ๋‹ค.)

 


๐ŸŸจ ๊ฐ์ฒด ํ”„๋กœํผํ‹ฐ ๋‹ค๋ฃจ๊ธฐ

1) ํŠน์ • ํ”„๋กœํ”„ํ‹ฐ์— ์ ‘๊ทผํ•˜๊ธฐ (์ฝ๊ธฐ)

๊ฐ์ฒด์˜ ์†์„ฑ์„ ์ฝ์„ ๋•Œ๋Š” ์  ํ‘œ๊ธฐ๋ฒ•(dot notation) ๋˜๋Š” ๊ด„ํ˜ธ ํ‘œ๊ธฐ๋ฒ•(bracket notation)์„ ์‚ฌ์šฉํ•œ๋‹ค.

let name = person.name; // ์  ํ‘œ๊ธฐ๋ฒ•
console.log(name);      // ssosso 

let age = person["age"]; // ๊ด„ํ˜ธ ํ‘œ๊ธฐ๋ฒ•
console.log(age);        // 24

let property = "hobby";      // ๋ณ€์ˆ˜๋กœ key๋ฅผ ๋‹ค๋ฃฐ ๋•Œ๋Š” ๋ฌด์กฐ๊ฑด ๊ด„ํ˜ธ ํ‘œ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•ด์•ผ ํ•จ
let hobby = person[property]
console.log(hobby);          // ํ…Œ๋‹ˆ์Šค

 

 

2) ์ƒˆ๋กœ์šด ํ”„๋กœํผํ‹ฐ ์ถ”๊ฐ€ํ•˜๊ธฐ

person.job = "FE Developer";      // ์  ํ‘œ๊ธฐ๋ฒ•
person["favoriteFood"] = "๋งˆ๋ผํƒ•" // ๊ด„ํ˜ธ ํ‘œ๊ธฐ๋ฒ•

 

 

3) ํ”„๋กœํผํ‹ฐ ์ˆ˜์ •ํ•˜๊ธฐ

person.job = "Educator";       // ์  ํ‘œ๊ธฐ๋ฒ•
person["favorite"] = "๋–ก๋ณถ์ด"; // ๊ด„ํ˜ธ ํ‘œ๊ธฐ๋ฒ•

 

 

4) ํ”„๋กœํผํ‹ฐ ์‚ญ์ œํ•˜๊ธฐ

delete person.job;

 

 

5) ํ”„๋กœํผํ‹ฐ์˜ ์กด์žฌ ์œ ๋ฌด ํ™•์ธํ•˜๊ธฐ

ํŠน์ • key๊ฐ€ ๊ฐ์ฒด ์•ˆ์— ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์‹ถ์„ ๋•Œ์—๋Š” in ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

let result1 = "name" in person;
console.log(result1); // true

 

 


๐ŸŸฉ ์‹ฌํ™”) ๊ฐ์ฒด์˜ ํŠน๋ณ„ํ•œ ํŠน์ง•

1) ๊ฐ์ฒด๋Š” ์ฐธ์กฐ ํƒ€์ž…์ด๋‹ค.

let a = { value: 10 };
let b = a;

b.value = 20;

console.log(a.value); // 20

 

a์™€ b๋Š” ๊ฐ™์€ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ธฐ ๋•Œ๋ฌธ์—

b.value๋กœ ๊ฐ’์„ ์ˆ˜์ •ํ–ˆ๋”๋ผ๋„ a.value ๊ฐ’๋„ ๊ฐ™์ด 20์œผ๋กœ ๋ฐ”๋€Œ๊ฒŒ ๋œ๋‹ค.

 

 

2) ํ”„๋กœํผํ‹ฐ ํ‚ค๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฌธ์ž์—ด์ด๋‹ค.

์ˆซ์ž์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ํ‚ค๋„ ์ž๋™์œผ๋กœ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜๋œ๋‹ค๊ณ  ํ•œ๋‹ค.

let obj = { 1: "one" }

console.log(obj[1]);   // "one"
console.log(obj["1"]); // "one"

 

 

3) ๊ฐ์ฒด ์•ˆ์— ํ•จ์ˆ˜๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค.

let user = {
  name: "ssosso",
  
  greet: function () {
    console.log("์•ˆ๋…•ํ•˜์„ธ์š”," + this.name + "์ž…๋‹ˆ๋‹ค.");
  },
  
  bye: () => {
    console.log("์•ˆ๋…•ํžˆ๊ฐ€์„ธ์š”.");
  },
  
  sayGood() {
    console.log("๊ตฟ");
  },
};

user.greet();   // "์•ˆ๋…•ํ•˜์„ธ์š”, ssosso์ž…๋‹ˆ๋‹ค."
user.bye();     // "์•ˆ๋…•ํžˆ๊ฐ€์„ธ์š”."
user.sayGood(); // "๊ตฟ"

 

 


๐Ÿ“š ๊ฒฐ๋ก 

๋‹จ์ˆœํžˆ ๋ณ€์ˆ˜๋ฅผ ๋‚˜์—ดํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๊ฐ์ฒด๋ฅผ ์“ฐ๋ฉด ๊ด€๋ จ๋œ ์ •๋ณด๋ฅผ ํ•œ ๋ฉ์–ด๋ฆฌ๋กœ ๋ฌถ์–ด์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด ๋งค์šฐ ํŽธ๋ฆฌํ•œ ๊ฒƒ ๊ฐ™๋‹ค.

 

์‹ค์ œ๋กœ๋„ ์˜ค๋Š˜ ์˜ˆ์‹œ๋กœ ์‚ดํŽด๋ดค๋˜ ์‚ฌ๋žŒ์˜ ์ด๋ฆ„, ๋‚˜์ด, ์ทจ๋ฏธ, ํ•™์ƒ์ธ์ง€ ์—ฌ๋ถ€ ๋“ฑ์„ ๊ฐ๊ฐ์˜ ๋ณ€์ˆ˜๋กœ ์„ ์–ธํ–ˆ์œผ๋ฉด ๊ด€๋ฆฌํ•˜๊ธฐ ํž˜๋“ค์—ˆ์„ ํ…๋ฐ

๊ฐ์ฒด๋กœ ๋ฌถ์–ด๋‘๋‹ˆ๊นŒ ํ›จ์”ฌ ๊ด€๋ฆฌํ•˜๊ธฐ๊ฐ€ ์‰ฌ์› ๋‹ค.

 

์•ž์œผ๋กœ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ ๋‹จ์ˆœ ๋ณ€์ˆ˜๋ณด๋‹ค๋Š”

๊ฐ์ฒด๋กœ ๊ตฌ์กฐํ™”ํ•ด์„œ ๊ด€๋ฆฌํ•˜๋Š” ์Šต๊ด€์„ ๊ฐ€์ ธ์•ผ๊ฒ ๋‹ค.

๋ฐ˜์‘ํ˜•