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

TaeYangยท2021๋…„ 9์›” 9์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
4/8
post-thumbnail

๊ฐ์ฒด(Object)

JavaScript ์—์„œ๋Š” ์›์‹œํƒ€์ž…์„ ์ œ์™ธํ•œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ๊ฐ์ฒด(Object)์ž…๋‹ˆ๋‹ค.
๊ฐ์ฒด(Object)๋ž€ ์—ฌ๋Ÿฌ ์†์„ฑ์„ ํ•˜๋‚˜์˜ ๋ณ€์ˆ˜์— ์ €์ •ํ• ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…์œผ๋กœ ํ‚คkey์™€ ๊ฐ’value์œผ๋กœ ๊ตฌ์„ฑ๋œ ํ”„๋กœํผํ‹ฐ(Property)๋“ค์˜ ์ง‘ํ•ฉ๋‹ˆ๋‹ค.

  • ํ”„๋กœํผํ‹ฐ ํ‚ค: ๋นˆ ๋ฌธ์ž์—ด์„ ํฌํ•จํ•˜๋Š” ๋ชจ๋“  ๋ฌธ์ž์—ด ๋˜๋Š” ์‹ฌ๋ณผ ๊ฐ’์ด ๋“ค์–ด๊ฐˆ ์ˆ˜ ์ž‡์Œ
  • ํ”„๋กœํผํ‹ฐ ๊ฐ’: ๋ชจ๋“  ๊ฐ’์ด ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์Œ

๊ฐ์ฒด(Object)์ƒ์„ฑ ๋ฐฉ๋ฒ•

๊ฐ์ฒด(Object)๋ฅผ ์„ ์–ธํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์„ธ๊ฐ€์ง€ ์ •๋„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ธฐ๋ณธobject() ๊ฐ์ฒด ์ƒ์„ฑ์ž ํ•จ์ˆ˜ ์‚ฌ์šฉ, ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด ๋ฐฉ์‹ ์‚ฌ์šฉ, ์ƒ์„ฑ์ž ํ•จ์ˆ˜ ์‚ฌ์šฉ

Object() ๊ฐ์ฒด ์ƒ์„ฑ์ž ํ•จ์ˆ˜ ์‚ฌ์šฉ

์ด ๋ฐฉ๋ฒ•์€ JavaScript์— ๋‚ด์žฅ๋˜์–ด ์žˆ๋Š” Object() ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.
new Object ๋ฅผํ†ตํ•ด ๋นˆ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ฐ์ฒด์— ํ”„๋กœํผํ‹ฐ๋ฅผ ํ• ๋‹นํ•˜๊ธฐ

//๋นˆ ๊ฐ์ฒด ์ƒ์„ฑ
let person = new Object();

//person ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ ํ• ๋‹น
person.name = "ํƒœ์–‘";
person.age = 25;
person.frontend = "True";

console.log(person);

//๊ฒฐ๊ณผ
{ name: 'ํƒœ์–‘', age: 25, frontend: 'True' }

๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด ๋ฐฉ์‹ ์‚ฌ์šฉ

์ด ๋ฐฉ๋ฒ•์€ ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด ๋ฐฉ์‹์œผ๋กœ {}๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ ํ• ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

let person = {
  name: "ํƒœ์–‘",
  age: 25,
  frontend: "Yes"
};
console.log(peroson);

//๊ฒฐ๊ณผ
{ name: 'ํƒœ์–‘', age: 25, frontend: 'Yes' }
  

์ƒ์„ฑ์ž ํ•จ์ˆ˜ ์‚ฌ์šฉ

์ด ๋ฐฉ๋ฒ•์€ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด์„œ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

function person (name, age, frontend) {
  this.name = name;
  this.age = age;
  this.frontend = frontend;
}
let person1 = new person("ํƒœ์–‘", 25, "Yes");
console.log(person1)

//๊ฒฐ๊ณผ
person = {
  name: "ํƒœ์–‘",
  age: 25,
  frontend: "Yes"
}

๊ฐ์ฒด ํ”„๋กœํผํ‹ฐ

ํ”„๋กœํผํ‹ฐ๋Š” ํ”„๋กœํผํ‹ฐ ํ‚คkey์™€ ํ”„๋กœํผํ‹ฐ ๊ฐ’value์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์ฒด์—์„œ๋Š” ํ”„๋กœํผํ‹ฐ ํ‚ค๋กœ ํ”„๋กœํผํ‹ฐ๋ฅผ ์‹๋ณ„ ํ•ฉ๋‹ˆ๋‹ค.

  • ํ”„๋กœํผํ‹ฐ ํ‚ค : ๋นˆ ๋ฌธ์ž์—ด์„ ํฌํ•จํ•˜๋Š” ๋ชจ๋“  ๋ฌธ์ž์—ด ๋˜๋Š” ์‹ฌ๋ณผ ๊ฐ’
  • ํ”„๋กœํผํ‹ฐ ๊ฐ’ : ๋ชจ๋“  ๊ฐ’

์ด์ œ ๊ฐ์ฒด ํ”„๋กœํผํ‹ฐ ๊ฐ’์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‚˜ ๊ฐ’์„ ์ˆ˜์ •, ๊ฐ’์„ ์‚ญ์ œ ํ•˜๋Š” ๋ฐฉ๋ฒ•๋“ค์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค

๊ฐ์ฒด ํ”„๋กœํผํ‹ฐ ๊ฐ’ ์ ‘๊ทผ ๋ฐฉ๋ฒ•

๊ฐ์ฒด์— ํ”„๋กœํผํ‹ฐ ๊ฐ’์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‘๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๋งˆ์นจํ‘œ . (Dot notation)์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๋Œ€๊ด„ํ˜ธ [] (Braket notation)์œผ๋กœ ์ ‘๊ทผ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์นจํ‘œ(Dot notation)

๋งˆ์นจํ‘œ ๋˜๋Š” ๋‹ท ์œผ๋กœ ๋ถˆ๋ฆฌ๋Š” (.) ์œผ๋กœ ์œผ๋กœ ํ”„๋กœํผํ‹ฐ์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.
Dot notation ์—์„œ์˜ key๋Š” ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ๋งŒ ํ—ˆ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด key๊ฐ’์„ ์ฐธ์กฐ ํ• ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

let person = {
  name: "ํƒœ์–‘",
  age: 25,
  frontend: "Yes"
};

//๊ฐ€๋Šฅ
console.log(person.name);        //"ํƒœ์–‘"
console.log(person.age);        // 25
console.log(person.frontend);   // "True"

//๋ถˆ๊ฐ€๋Šฅ
let keyName = "name";
console.log(person.keyName);   //underfined

๋Œ€๊ด„ํ˜ธ(Braket notation)

Braket notation์€ []์‚ฌ์ด์— key ๊ฐ’์„ ๋ฌธ์ž์—ด๋กœ ๋„ฃ์–ด์„œ ํ”„๋กœํผํ‹ฐ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.
๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด key๊ฐ’์„ ์ฐธ์กฐํ•˜๋Š”๊ฒŒ Dot notation์—์„  ๋ถˆ๊ฐ€๋Šฅ์ด์˜€์ง€๋งŒ Braket notation ์—์„  ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

let person = {
  name: "ํƒœ์–‘",
  age: 25,
  frontend: "Yes"
};

console.log(person["name"]);          //"ํƒœ์–‘"
console.log(person["age"]);           // 25
console.log(person["frontend"]);       // "True"

//๋ณ€์ˆ˜๋กœ ์ ‘๊ทผ
let keyName = "age"
console.log(person[keyName])          // 25

ํ”„๋กœํผํ‹ฐ ๊ฐ’ ์ถ”๊ฐ€/์ˆ˜์ •/์‚ญ์ œ

ํ”„๋กœํผํ‹ฐ ๊ฐ’ ์ถ”๊ฐ€

๊ฐ์ฒด๊ฐ€ ์•ˆ์— ์—†๋Š” ํ”„๋กœํผํ‹ฐ ํ‚ค์— ๊ฐ’์„ ํ• ๋‹นํ•ด์ฃผ๋ฉด ์ฃผ์–ด์ง„ ํ‚ค์™€ ๊ฐ’์œผ๋กœ ํ”„๋กœํผํ‹ฐ๋ฅผ ๋งŒ๋“ค์–ด ๊ฐ์ฒด์— ์ถ”๊ฐ€ ํ• ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

let person = {
  name: "ํƒœ์–‘",
  age: 25,
  frontend: "Yes"
};

person.MBTI = "ESFJ";
console.log(person);
// ์œ„์— console.log ๊ฐ’
name: 'ํƒœ์–‘',
  age: 25,
  frontend: 'Yes',
  MBTI: 'ESFJ'

ํ”„๋กœํผํ‹ฐ ๊ฐ’ ์ˆ˜์ •

๊ฐ์ฒด ์•ˆ์— ์žˆ๋Š” ํ”„๋กœํผํ‹ฐ์— ์ƒˆ๋กœ์šด ๊ฐ’์„ ํ• ๋‹นํ•˜๋ฉด ๊ทธ ๊ฐ’์œผ๋กœ ์ˆ˜์ • ๋ฉ๋‹ˆ๋‹ค.

let person = {
  name: "ํƒœ์–‘",
  age: 25,
  frontend: "Yes",
  MBTI: 'ESFJ'
};

person.name = "TaeYang";
console.log(person.name);    //"TeaYang"

ํ”„๋กœํผํ‹ฐ ์‚ญ์ œ

์—ฐ์‚ฐ์ž delete๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœํผํ‹ฐ๋ฅผ ์‚ญ์ œํ• ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ํ”ผ์—ฐ์‚ฐ์ž๋Š” ํ”„๋กœํผํ‹ฐ ํ‚ค์—ฌ์•ผ๋งŒ ํ•ฉ๋‹ˆ๋‹ค!.

let person = {
  name: "ํƒœ์–‘",
  age: 25,
  frontend: "Yes",
  MBTI: 'ESFJ'
};

delete person.frontend;
console.log(person);
//์œ„์— console.log ๊ฐ’
 name: "ํƒœ์–‘",
  age: 25,
  MBTI: 'ESFJ'

์ฐธ๊ณ 

Object ๊ฐ์ฒด
MDN Web Docs Object

profile
์Œ์•… ์ „๊ณต ์ด์˜€๋˜ ์˜ˆ๋น„ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์žโ˜€๏ธ

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