TIL - 21.06.20 ๐Ÿ‘จโ€๐Ÿ’ป JS

์„ฑํ›ˆยท2021๋…„ 6์›” 20์ผ
0

TIL

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

TIL - 21.06.20 ๐Ÿ‘จโ€๐Ÿ’ป

์ƒํ™œ์ฝ”๋”ฉ js ๊ฐ์ฒด ๊ณต๋ถ€ํ–ˆ๋‹ค.

๊ฐ์ฒด

์šฐ๋ฆฌ๊ฐ€ ํ”ํžˆ ์‚ฌ์šฉํ•˜๋Š” document.querySelector(); ์—ญ์‹œ๋„ ๊ฐ์ฒด๋‹ค.
document ๋ผ๋Š” ๊ฐ์ฒด ์•ˆ์˜ querySelector๋ผ๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ.

๋ฐฐ์—ด์ด ์ˆœ์„œ๋Œ€๋กœ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š”๊ฑฐ๋ผ๋ฉด, ๊ฐ์ฒด๋Š” ๋ฌด์ž‘์œ„๋กœ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ฐ์ฒด ์„ ์–ธ

let object = {
  // dev ์™€ dream์€ Property.
  // ํ”„๋กœํผํ‹ฐ ์‚ฌ์ด์—” ์ฝค๋งˆ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค.
  'name': 'Sunghoon',
  'dream': 'being dev'
}

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

object.statue = 'sleepy';
object['property name'] = 'value'

์ด๋ ‡๊ฒŒ ๋‘๊ฐ€์ง€๊ฐ€ ์žˆ์œผ๋ฉฐ
๋Œ€๊ด„ํ˜ธ๋ฅผ ์ด์šฉํ•œ ๋ฐฉ์‹์€ ํ”„๋กœํผํ‹ฐ ๊ฐ’์— ๋„์–ด์“ฐ๊ธฐ๋ฅผ ํฌํ•จ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

๊ฐ์ฒด ๋ฐ์ดํ„ฐ ํ˜ธ์ถœ

object.dev // dot notation
object['dream'] // bracket notation

๊ฐ์ฒด ๋ฐ์ดํ„ฐ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ๋Š” ์ด๋ ‡๊ฒŒ ๋‘๊ฐ€์ง€๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ,
ํ”„๋กœํผํ‹ฐ ๊ฐ’์— ๋„์–ด์“ฐ๊ธฐ๊ฐ€ ์žˆ์œผ๋ฉด ๋Œ€๊ด„ํ˜ธ ๋ฐฉ์‹์œผ๋กœ๋งŒ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๊ณ , ํ›„์ˆ ํ•  ๋ฃจํ”„์—์„œ๋„ ๋Œ€๊ด„ํ˜ธ ๋ฐฉ์‹์œผ๋กœ ๊ฐ’์„ ๋ถˆ๋Ÿฌ์˜จ๋‹ค.

๋Œ€๊ด„ํ˜ธ๋กœ ๊ฐ’์„ ํ˜ธ์ถœํ• ๋•Œ๋Š” ํ”„๋กœํผํ‹ฐ ๊ฐ’์— ๋”ฐ์˜ดํ‘œ๋ฅผ ๊ผญ ๋ถ™ํ˜€์ค˜์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์— ์œ ์˜ํ•˜์ž.

๊ฐ์ฒด ๋ฐ˜๋ณต๋ฌธ

// object์˜ ํ”„๋กœํผํ‹ฐ ์ˆ˜ ๋งŒํผ ๋ฐ˜๋ณต
// object์˜ ํ”„๋กœํผํ‹ฐ ํ‚ค ๊ฐ’์„ key์— ํ• ๋‹น
// ๋ฐ˜๋ณตํ• ๋•Œ๋งˆ๋‹ค ๋ณ€์ˆ˜์˜ ๊ฐ’์ด ๋ฐ”๋€œ.
// ex) 1๋ฒˆ์งธ ๋ฃจํ”„ / key = '1', 2๋ฒˆ์งธ ๋ฃจํ”„ / key = '2'
for(let key in object){
	document.write(key+' : '+object[key]);
}

๋ฐ˜๋ณต๋ฌธ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋ ค๋ฉด ๋Œ€๊ด„ํ˜ธ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค.
key์—๋Š” ๋”ฐ์˜ดํ‘œ๊ฐ€ ํฌํ•จ๋œ ํ”„๋กœํผํ‹ฐ ํ‚ค๊ฐ€ ํ• ๋‹น๋˜๊ธฐ ๋•Œ๋ฌธ.

๊ฐ์ฒด์˜ ๋ฐ์ดํ„ฐ๋กœ๋Š” ๋ฌธ์ž์—ด, ๋ถˆ๋ฆฌ์–ธํƒ€์ž…์€ ๋ฌผ๋ก  ๋ฐฐ์—ด๊ณผ ํ•จ์ˆ˜๋„ ๋‹ด์„ ์ˆ˜ ์žˆ๋‹ค.
ํ•จ์ˆ˜๋Š” ํ‘œํ˜„์‹๊ณผ ์œ ์‚ฌํ•œ ๋ฐฉ์‹์œผ๋กœ ์„ ์–ธ๋˜๋ฉฐ

object.funcName = function(){
	for(let key in this){
    	document.write(key+' : '+this[key]);
    }
}

์™€ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ํ”„๋กœํผํ‹ฐ์— ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐ์ฒด์— ํ• ๋‹น๋œ ํ•จ์ˆ˜๋Š” Method(๋ฉ”์†Œ๋“œ)๋ผ๊ณ  ํ•œ๋‹ค.

  • this
    ์ƒ๊ธฐ ๋ฉ”์†Œ๋“œ์—” ๊ฐ์ฒด์˜ ์ด๋ฆ„ ๋Œ€์‹  this๊ฐ€ ์“ฐ์˜€๋Š”๋ฐ this๋Š” ํ•จ์ˆ˜๊ฐ€ ํฌํ•จ๋œ ๊ฐ์ฒด๋ฅผ ์ง€์นญํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
    this๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ ๊ฐ์ฒด์˜ ์ด๋ฆ„์ด ๋ฐ”๋€”๋•Œ๋„ ์˜ํ–ฅ์„ ๋ฐ›์ง€์•Š๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.

GOOD ๐Ÿ˜‰

์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋ฐ€๋ฆฌ๋˜ ์ƒํ™œ์ฝ”๋”ฉjs๋ฅผ ๋“œ๋””์–ด ๋“ค์—ˆ๋‹ค.

BAD ๐Ÿ˜ฅ

์ฟผ๋ฆฌ์…€๋ ‰ํ„ฐ์— ๋Œ€ํ•ด ์ œ๋Œ€๋กœ ์•Œ์•„๋ณด์ง€ ๋ชปํ–ˆ๋‹ค.
์ƒํ™œ์ฝ”๋”ฉ๋งŒ ๋ณด๊ณ  ๊ฐ์ฒด๋ฅผ ๊ณต๋ถ€ํ•ด์„œ ๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋‚˜ ํฌ์ด์— ์›น์œผ๋กœ ๋” ๊ณต๋ถ€ํ•ด์•ผํ•œ๋‹ค.
๋Šฆ์ž ๋„ ์žค๋Š”๋ฐ ๋‚ฎ์ž ๋„ ์ž๋ฒ„๋ฆฌ๊ณ  ์‹ฌ์ง€์–ด ์ง€๊ธˆ ์กธ๋ฆฌ๊ธฐ๊นŒ์ง€ ํ•˜๋‹ค.๋ญํ•˜๋Š” ๋†ˆ์ด์•ผ

TO DO ๐Ÿ”ฅ

๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ, ํฌ์ด์— ์›น์œผ๋กœ ๊ฐ์ฒด ๋” ๊ณต๋ถ€ํ•˜๊ธฐ
์ฟผ๋ฆฌ์…€๋ ‰ํ„ฐ ์•Œ์•„๋ณด๊ธฐ

Retrospect ๐Ÿง

์ฃผ๋ง์ด๋‚˜ ํ‰์ผ์ด๋‚˜ ํฐ ์ฐจ์ด๊ฐ€ ์—†๋Š” ์ž…์žฅ์—์„œ ์ฃผ๋ง์ด๋ผ๊ณ  ์ฃผ๋ณ€์ด ๋“ค๋œจ๋‹ˆ๊นŒ ๋ณธ์ธ๋„ ๋“ค๋– ์„œ ๊ฑ ํƒœ๋งŒํ•˜๊ฒŒ ๋ณด๋‚ด๋ฒ„๋ ธ๋‹ค.
๋‚ด์ผ๋ถ€ํ„ฐ ๋‹ค์‹œ ํ‰์ผ์ธ๋ฐ ์ œ๋Œ€๋กœ ์ •์‹ ์ค„ ์žก๊ณ  ๊ฐ€์ž.

๋‚ด์ผ์€ ๊ผญ ํ‰์†Œ๋Œ€๋กœ ์ผ์–ด๋‚˜์„œ ์•„์นจ์‚ฐ์ฑ… ๊ฐ€์•ผ์ง€.

๋ค์œผ๋กœ ๊ตญ๋ฏผ์ทจ์—…์ง€์›์ œ๋„ 1์œ ํ˜• ์‹ ์ฒญํ–ˆ๋Š”๋ฐ ๊ผญ ๋˜์—ˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค.
2์œ ํ˜•์€ ์˜๋ฏธ์—†์–ด

Reference ๐Ÿ™‡

์ƒํ™œ์ฝ”๋”ฉ - https://opentutorials.org/

profile
์–ด๋–ป๊ฒŒ ์ด๊ฑธ ํ’€์–ด๋‚ผ ์ˆ˜ ์žˆ์„๊นŒ

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