๊ฐ์ฒด๋ž€? (๐Ÿ”‘Study Keyword)

์ดํ•˜์˜ยท2022๋…„ 3์›” 14์ผ
0

JavaScript

๋ชฉ๋ก ๋ณด๊ธฐ
3/5
post-thumbnail

๐Ÿ—ฃ๊ฐ์ฒด๋ž€?

ํ•˜๋‚˜์˜ ๋ณ€์ˆ˜์— ์—ฌ๋Ÿฌ ์†์„ฑ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์ฐธ์กฐํ˜• ๋ฐ์ดํ„ฐ ํƒ€์ž… ์ค‘ ํ•˜๋‚˜์ด๋‹ค.
์•„๋ž˜ ์ด๋ฏธ์ง€์ฒ˜๋Ÿผ key(์†์„ฑ์ด๋ฆ„) value(์†์„ฑ ๊ฐ’) property(์†์„ฑ)์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฉฐ, ๋ฐฐ์—ด๊ณผ ๋‹ฌ๋ฆฌ ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•˜์ง€ ์•Š๋‹ค.

๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ‰์†Œ์ฒ˜๋Ÿผ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•œ ๋‹ค์Œ, ์ค‘๊ด„ํ˜ธ{...}๋กœ key-value์˜ ์†์„ฑ ์Œ์„ ๋ฌถ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

๐Ÿ—ฃ ๊ฐ์ฒด๊ฐ€ ํ•„์š”ํ•œ ์ด์œ ๋Š”?

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ฐ์ฒด ๊ธฐ๋ฐ˜์˜ ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด์ด๋ฉฐ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด๋ฃจ๊ณ  ์žˆ๋Š” ๊ฑฐ์˜ ๋ชจ๋“ ๊ฒƒ์ด ๊ฐ์ฒด์ด๋‹ค. ์›์‹œํƒ€์ž…(Primitives)์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๊ฐ’๋“ค(ํ•จ์ˆ˜, ๋ฐฐ์—ด, ์ •๊ทœํ‘œํ˜„์‹ ๋“ฑ)์€ ๋ชจ๋‘ ๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๊ฐ์ฒด๋Š” ํ•„์ˆ˜ ๋ถˆ๊ฐ€๊ฒฐํ•œ ์กด์žฌ๋‹ค.

  • ๊ฐ์ฒด๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์˜๋ฏธํ•˜๋Š” ํ”„๋กœํผํ‹ฐ(Property)์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๋™์ž‘์„ ์˜๋ฏธํ•˜๋Š” ๋ฉ”์†Œ๋“œ(Method)๋กœ ๊ตฌ์„ฑ๋œ ์ง‘ํ•ฉ์ด๋‹ค. ๊ฐ์ฒด๋Š” ๋ฐ์ดํ„ฐ(ํ”„๋กœํผํ‹ฐ)์™€ ๊ทธ ๋ฐ์ดํ„ฐ์— ๊ด€๋ จ๋˜๋Š” ๋™์ž‘(๋ฉ”์†Œ๋“œ)์„ ๋ชจ๋‘ ํฌํ•จํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ์™€ ๋™์ž‘์„ ํ•˜๋‚˜์˜ ๋‹จ์œ„๋กœ ๊ตฌ์กฐํ™”ํ•  ์ˆ˜ ์žˆ์–ด ์œ ์šฉํ•˜๋‹ค.

  • ๊ด€๋ จ ์žˆ๋Š” ์ •๋ณด๋“ค์„ ์„œ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ์— ๊ฐ์ฒด๋ฅผ ํ™œ์šฉํ•˜๋ฉด, ๋ฐ์ดํ„ฐ(Value)์™€ ๋ฌธ์ž์—ด(Key)์„ ์—ฐ๊ด€ ์ง€์–ด์„œ ์ €์žฅํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฝ”๋“œ๋ฅผ ์œ ์ง€ ๋ณด์ˆ˜ํ•  ๋•Œ์—๋„ ๋งค์šฐ ํŽธ๋ฆฌํ•˜๋‹ค.

    • ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ์—์„œ๋Š” ์ด๋ฅผ ์‰ฝ๊ฒŒ ๋Š๋‚„ ์ˆ˜ ์—†๊ฒ ์ง€๋งŒ, ์ฝ”๋“œ๊ฐ€ ๋ณต์žกํ•ด์ง€๊ณ  ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ์œ ์ง€ ๋ณด์ˆ˜๊ฐ€ ํ›จ์”ฌ ํŽธ๋ฆฌํ•ด์ง„๋‹ค๋Š” ๊ฑธ ๋Š๋‚„ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

๐Ÿ—ฃ property, key, value

  1. property

    ๊ฐ์ฒด๋Š” ํ”„๋กœํผํ‹ฐ์˜ ์ง‘ํ•ฉ์ด๋‹ค. ํ”„๋กœํผํ‹ฐ๋Š”ย key(ํ‚ค) : value(๊ฐ’)์˜ ํ˜•์‹์œผ๋กœ ๊ฐ์ฒด ์•ˆ์˜ ์ฝค๋งˆ(,)๋กœ ๊ตฌ๋ถ„๋˜์–ด ํ• ๋‹น๋œ๋‹ค.

  2. key

    ์†์„ฑ๋ช…์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฌธ์ž์—ด๋งŒ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๋”ฐ์˜ดํ‘œ(โ€™ โ€˜)๋Š” ํ•„์š”์—†๋‹ค. ํ•˜์ง€๋งŒ ์ปดํ“จํ„ฐ๊ฐ€ ๋ชจ๋ฅด๋Š” ์–ธ์–ด (์˜ˆ๋ฅผ ๋“ค๋ฉด ํ•œ๊ตญ์–ด)๋ผ๋ฉด ๋”ฐ์˜ดํ‘œ๊ฐ€ ํ•„์š”ํ•˜๊ณ  ๋„์–ด์“ฐ๊ธฐ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋„ ํ•„์š”ํ•˜๋‹ค.

  3. value

    ์†์„ฑ๊ฐ’์ด๋ผ๊ณ ๋„ ๋ถ€๋ฅด๋ฉฐ, ์–ด๋–ค ๊ฐ’์ด๋“ ์ง€ (๋ฌธ์ž์—ด, ์ˆซ์ž ,๊ฐ์ฒด, ํ•จ์ˆ˜ ๋“ฑ) ์•„๋ฌด๊ฑฐ๋‚˜ ์ƒ๊ด€ ์—†๋‹ค.
    ๊ฐ์ฒด์— ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•  ๊ฒฝ์šฐ, ์†์„ฑ๊ฐ’์ด๋ผ๊ณ  ํ•˜์ง€ ์•Š๊ณ  ๋ฉ”์†Œ๋“œ(method)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

๐Ÿ—ฃ ๊ฐ์ฒด์˜ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผ ๋ฐฉ๋ฒ•

  1. Dot Notation (์  ํ‘œ๊ธฐ๋ฒ•)
let abc = {
	a: 'a',
	b: 'b',
	c: 'c'
}
console.log(abc.a); //a ์ถœ๋ ฅ
console.log(abc.b); //b ์ถœ๋ ฅ
console.log(abc.c); //c ์ถœ๋ ฅ

โ–บ ๊ฐ์ฒด.ํ”„๋กœํผํ‹ฐ ํ˜•์‹์œผ๋กœ ๊ฐ’์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅ

  1. Bracket Notation(๊ด„ํ˜ธ ํ‘œ๊ธฐ๋ฒ•)
let abc = {
	a: 'a',
	b: 'b',
	c: 'c'
}
console.log(abc['a']); //a ์ถœ๋ ฅ
console.log(abc['b']); //b ์ถœ๋ ฅ
console.log(abc['c']); //c ์ถœ๋ ฅ

โ–บ ๊ฐ์ฒด['ํ”„๋กœํผํ‹ฐ ์ด๋ฆ„(ํ‚ค)'] ํ˜•์‹์œผ๋กœ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅ

๐ŸŒŽ ์—ฌ๊ธฐ์„œ ์ž ๊น!!!

Dot Notation vs Bracket Notation
์ด ๋‘๊ฐ€์ง€์—๋Š” ํฐ ์ฐจ์ด์ ์ด ์กด์žฌํ•œ๋‹ค.
bracket notation์—๋Š” dot notation์ด ๊ฐ–์ง€ ๋ชปํ•˜๋Š” ์ค‘์š”ํ•œ ์šฉ๋„๊ฐ€ ์žˆ๋‹ค ๋ฐ”๋กœ ๋ณ€์ˆ˜์˜ ํ™œ์šฉ์ด๋‹ค.
๋ฐ‘์— ์˜ˆ์‹œ๋ฅผ ๋ณด๋ฉด์„œ ๋” ์ •ํ™•ํ•˜๊ฒŒ ์„ค๋ช…ํ•ด๋ณด์ž!

์šฐ์„  myself ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  โ–ผ

let myself={
  name : 'Code Kim',
  location : {
  	country : 'south korea',
  	city : 'Seoul'
},
  age : 30
  cats : ['๋ƒฅ์ˆœ','๋ƒฅ๋Œ'],
}
    

myself์— ์žˆ๋Š” cats ํ‚ค๊ฐ’์œผ๋กœ ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ  โ–ผ

let myKey = 'cats'

๋‘๊ฐ€์ง€ ์ ‘๊ทผ๋ฒ•์œผ๋กœ ์ ‘๊ทผํ•ด๋ณด์ž๋ฉดโ–ผ

console.log(myself['cata']) // ["๋ƒฅ์ˆœ","๋ƒฅ๋Œ"]
console.log(myself[myKey]) // ["๋ƒฅ์ˆœ","๋ƒฅ๋Œ"]
console.log(myself.myKey) // undefined

โ†’ ์ด๋ ‡๋“ฏ ๊ด„ํ˜ธํ‘œ๊ธฐ๋ฒ•์€ ๋ณ€์ˆ˜๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ ์ ‘๊ทผํ• ์ˆ˜ ์žˆ์ง€๋งŒ ์ ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ๋Š” ๋ณ€์ˆ˜ํ™œ์šฉํ•˜์ง€ ๋ชปํ•œ๋‹ค.
๐Ÿ’ก ์ด๋ ‡๊ฒŒ ํฐ ์ฐจ์ด์ ์ด ์žˆ๊ธฐ์— ๋‘๊ฐ€์ง€ ์ ‘๊ทผ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋‘ฌ์•ผํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค!!

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