[JavaScript] - ๊ฐ์ฒด(Object)

NOWANDHEREยท2020๋…„ 10์›” 2์ผ
0

JavaScript

๋ชฉ๋ก ๋ณด๊ธฐ
7/12
post-thumbnail

๊ฐ์ฒด(Object)

๐ŸŒป ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๊ฐ์ฒด๋Š” ๊ฒŒ์ž„ ์บ๋ฆญํ„ฐ์— ๋น„์œ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‚˜์˜ ์บ๋ฆญํ„ฐ์™€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์บ๋ฆญํ„ฐ๋Š” ์ง์—…๊ณผ ๋Šฅ๋ ฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ, ์„œ๋กœ ๋‹ค๋ฅธ ์ง์—…๊ณผ ๋Šฅ๋ ฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ํšŒ์›๊ฐ€์ž… ์‹œ ์ž…๋ ฅํ•˜๋Š” ์ •๋ณด๋„ ๊ฐ์ž ๋‹ค๋ฅด์ง€๋งŒ, ์ž…๋ ฅํ•ด์•ผ ํ•˜๋Š” ์ •๋ณด์˜ ์ข…๋ฅ˜๋Š” ๋™์ผํ•˜๋‹ค.

๊ฐ์ฒด ๊ธฐ์ดˆ


Achievement Goals

  • ๋ฐฐ์—ด ๋ฐ ๊ฐ์ฒด ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๊ณ  ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ์ง€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ๋ฐฐ์—ด๊ณผ ๊ฐ์ฒด์˜ ํŠน์ง•์„ ๊ตฌ๋ถ„ํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. (์ˆœ์„œ๋ฅผ ๊ฐ€์ง„๋‹ค, ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„๋‹ค)

  • ๊ฐ์ฒด ์†์„ฑ(property)์˜ ์ถ”๊ฐ€, ์‚ญ์ œ, ์กฐํšŒ๋ฅผ ์ž์œ ์ž์žฌ๋กœ ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ๊ฐ์ฒด ์†์„ฑ ์กฐํšŒ๋ฒ• ๋‘ ๊ฐ€์ง€, dot notation๊ณผ bracket notation์˜ ์ฐจ์ด๋ฅผ ์ดํ•ดํ•œ๋‹ค.
    • obj.a = "hello"์™€ ๊ฐ™์€ ์ด์งˆ์ ์ธ ๊ฐ์ฒด ํ• ๋‹น ๋ฐฉ์‹์„ ๋Šฅ์ˆ™ํ•˜๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค.
    • ๊ฐ์ฒด ์†์„ฑ ์‚ญ์ œ๋ฅผ ์œ„ํ•œ delete ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ๊ฐ์ฒด๋ฅผ ์œ„ํ•œ for๋ฌธ for ... in ๋ฌธ์˜ ๊ธฐ๋ณธ์„ ์ดํ•ดํ•˜๊ณ  ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค.

  • ๋ฐฐ์—ด๊ณผ ๊ฐ์ฒด, ๋ฐ˜๋ณต๋ฌธ์„ ์‘์šฉํ•˜์—ฌ ๋Šฅ์ˆ™ํ•˜๊ฒŒ ๋Œ€๋Ÿ‰์˜ ์ •๋ณด๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค.

๊ฐ์ฒด๋ž€?

  • ํšŒ์› ์ฃผ์†Œ๋ก์„ ๋งŒ๋“ ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž.
  • ๊ฐ์ฒด๋Š” ์ด๋Ÿฌํ•œ ์ฃผ์†Œ๋ก์— ์ ํ•ฉํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ๊ฐ์ฒด์˜ ์„ ์–ธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
let user = {
  firstName: 'Steve';
  lastName: 'Lee';
  email: 'steve@codesates.com';
  city: 'Seoul';
};
  • ๊ฐ์ฒด๋Š” ํ‚ค์™€ ๊ฐ’ ์Œ(key-value pair)์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

๊ฐ์ฒด ๊ฐ’ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

  • ๊ฐ์ฒด์˜ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.
let user = {
  firstName: 'Steve';
  lastName: 'Lee';
  email: 'steve@codesates.com';
  city: 'Seoul';
};

[๋ฐฉ๋ฒ• 1] : Dot notation

user.firstName;    // 'Steve'
user.city;         // 'Seoul'


[๋ฐฉ๋ฒ• 2] : Bracket notation

user['firstName']; // 'Steve'
user['city'];      // 'Seoul'
  • ๋‹จ, Bracket notation์„ ์‚ฌ์šฉํ•  ๋•Œ์—๋Š” bracket ์•ˆ์ชฝ์˜ ๋‚ด์šฉ์„ ๋ฌธ์ž์—ด ํ˜•์‹์œผ๋กœ ์ „๋‹ฌํ•ด์•ผ ํ•œ๋‹ค.

  • Dot/Bracket notation์„ ์ด์šฉํ•ด ๊ฐ’์„ ์ถ”๊ฐ€ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
    • 3๊ฐ€์ง€ ์†์„ฑ์ด ์ž˜ ์ถ”๊ฐ€๋œ ๋ชจ์Šต์ด๋‹ค.

  • delete ํ‚ค์›Œ๋“œ๋ฅผ ์ด์šฉํ•ด ์†์„ฑ ์‚ญ์ œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
    • ๊ฐ์ฒด ์•ˆ์— color ํ‚ค-๊ฐ’ ์Œ์ด ์‚ญ์ œ๋œ ๋ชจ์Šต์ด๋‹ค.

  • in ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•ด ๊ฐ์ฒด ์•ˆ์— ํ•ด๋‹นํ•˜๋Š” ํ‚ค๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
    • name์— ํ•ด๋‹นํ•˜๋Š” ํ‚ค๋Š” ์กด์žฌํ•˜๋ฏ€๋กœ true, color์— ํ•ด๋‹นํ•˜๋Š” ํ‚ค๋Š” ์œ„์—์„œ ์‚ญ์ œ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— false๊ฐ€ ๋‚˜์˜ค๋Š” ๋ชจ์Šต์ด๋‹ค.

๋ฐฐ์šฐ๋Š” ๋‹จ๊ณ„๋ผ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ‹€๋ฆฐ ๋‚ด์šฉ์€ ๋Œ“๊ธ€ ๋‹ฌ์•„์ฃผ์‹œ๋ฉด ์ˆ˜์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค :)

profile
๐ŸŒป

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

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด