23.7.7 TIL

๊น€์ง„์ฃผยท2023๋…„ 7์›” 8์ผ
0

TJL(Today Jinju Learned)

๋ชฉ๋ก ๋ณด๊ธฐ
20/35

๐Ÿ“ŒnodeType

text, comment, span ๊ฐ™์€ ๊ฒƒ๋“ค์„ ๋…ธ๋“œ๋ผ๊ณ  ํ•˜๋Š”๋ฐ ๋…ธ๋“œ๋Š” ๊ฐ€์žฅ ์ž‘์€ ๋‹จ์œ„์ด๋‹ค.
๋…ธ๋“œ๋Š” ํƒ€์ž…์ด ์กด์žฌ ํ•˜๋Š”๋ฐ ๊ทธ ํƒ€์ž…์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
* htmlํƒœ๊ทธ๋ฅผ ์—˜๋ฆฌ๋จผํŠธ๋ผ๊ณ  ํ•œ๋‹ค / ์ฝ”๋“œ์˜ ๊ธธ์ด๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ๋ณดํ†ต ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋ณด๋‹จ ์ˆซ์ž๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค!

  • โญ ELEMENT_NODE (1):
    HTML ์š”์†Œ(ํƒœ๊ทธ)๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋…ธ๋“œ์ž…๋‹ˆ๋‹ค.
    ์˜ˆ๋ฅผ ๋“ค์–ด <div>, <p>, <a> ๋“ฑ์˜ HTML ์š”์†Œ๋Š” ELEMENT_NODE์ž…๋‹ˆ๋‹ค.
  • โญ ATTRIBUTE_NODE (2):
    HTML ์š”์†Œ์˜ ์†์„ฑ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋…ธ๋“œ์ž…๋‹ˆ๋‹ค.
    ์˜ˆ๋ฅผ ๋“ค์–ด class, id, src ๋“ฑ์˜ ์†์„ฑ์€ ATTRIBUTE_NODE์ž…๋‹ˆ๋‹ค.
  • โญ TEXT_NODE (3):
    HTML ์š”์†Œ์˜ ํ…์ŠคํŠธ ๋‚ด์šฉ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋…ธ๋“œ์ž…๋‹ˆ๋‹ค.
    ์˜ˆ๋ฅผ ๋“ค์–ด <p>Hello, World!</p>์—์„œ "Hello, World!" ๋ถ€๋ถ„์€ TEXT_NODE์ž…๋‹ˆ๋‹ค.
  • โญ COMMENT_NODE (8):
    HTML ์ฃผ์„์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋…ธ๋“œ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด <!-- ์ฃผ์„์ž…๋‹ˆ๋‹ค -->๋Š” COMMENT_NODE์ž…๋‹ˆ๋‹ค.

  • DOCUMENT_NODE (9): ์ „์ฒด ๋ฌธ์„œ(document)๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋…ธ๋“œ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๋ฌธ์„œ ์ „์ฒด๋ฅผ ํฌํ•จํ•˜๋Š” ์ตœ์ƒ์œ„ ๋…ธ๋“œ์ž…๋‹ˆ๋‹ค.
  • DOCUMENT_TYPE_NODE (10): ๋ฌธ์„œ์˜ ํƒ€์ž…(DOCTYPE)์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋…ธ๋“œ์ž…๋‹ˆ๋‹ค.
  • DOCUMENT_FRAGMENT_NODE (11): ๋ฌธ์„œ์˜ ์ผ๋ถ€๋ถ„์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋…ธ๋“œ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด <template> ์š”์†Œ์˜ ๋‚ด์šฉ์€ DOCUMENT_FRAGMENT_NODE์ž…๋‹ˆ๋‹ค.

for๋ฌธ

 for (let i = l - 1; i >= 0; i--) {
  let value = frontEndDev[i];
  console.log(value);
} 
//^ 6~0 ๊นŒ์ง€ ๋‚˜์˜ค๊ธธ ์›ํ•จ 
for (let i = l; i > 0; ) {
  let value = frontEndDev[--i]; //frontEndDev์—์„œ ๋ฐ”๋กœ ์„ ๊ฐ์†Œ๋ฅผ ์‹œํ‚ค๋ฉด ์กฐ๊ฑด์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค. 
  console.log(value);
}

๐Ÿ“Œfor in๋ฌธ

for...in ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ javaScript ๊ฐ์ฒด๊ฐ€ ๊ฐ€์ง„ ๊ฐ’์„ ์กฐํšŒ ํ•˜๋ ค๊ณ  ํ–ˆ์ง€๋งŒ for in๋ฌธ์—๋Š” ํ”„๋กœํ† ํƒ€์ž… ์ฒด์ด๋‹์— ์˜ํ•ด ์กฐ์ƒ ๊ฐ์ฒด๊นŒ์ง€ ์ฐพ์•„์ง€๋Š” ์น˜๋ช…์ ์ธ ๋‹จ์ ์ด ์žˆ๋‹ค.
๊ทธ๋ž˜์„œ ์ž์‹ ์ด ๊ฐ€์ง„ ๊ฐ’๋งŒ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š” hasOwnProperty๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

โš ๏ธ for...in์€ ๋ฐฉ๋ฌธ ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•œ ๋ฐฐ์—ด๋ณด๋‹ค๋Š” ๊ฐ์ฒด์— ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค!
for...in์€ ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋Š” ์ˆœ์„œ์— ์˜๋ฏธ๋ฅผ ๊ฐ–๊ธฐ ๋•Œ๋ฌธ์—, ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•˜์ง€ ์•Š๋Š” for...in์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉด ์˜ˆ๊ธฐ์น˜ ์•Š์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€์‹ ์— for...of ๋ฃจํ”„๋‚˜ ๋ฐฐ์—ด์˜ forEach ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๐Ÿ“ŒhasOwnProperty

ํ•˜์ง€๋งŒ eslint๊ฐ€ ๊ฒฝ๊ณ ๋ฅผ ํ•ด์ค€๋‹ค. ๊ทธ ์ด์œ ๋Š” ์œ„์™€ ๊ฐ™์ด ๊ธฐ์กด์˜ ๊ธฐ๋Šฅ์„ ๋ฎ์–ด ์“ฐ์—ฌ์งˆ ๊ฐ€๋Šฅ์„ฑ์ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฒฝ๊ณ  ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค

โœ… ํ•ด๊ฒฐ๋ฐฉ๋ฒ•
call์„ ์‚ฌ์šฉํ•˜์—ฌ ์ง„์งœ ๊ฐ์ฒด์—๊ฒŒ ๋Šฅ๋ ฅ์„ ๋นŒ๋ ค์•ผ ํ•œ๋‹ค. call์ด๋ผ๋Š” ๊ธฐ๋Šฅ์€ ๋‹ค๋ฅธ ํƒ€์ž…์— ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๋นŒ๋ฆฌ๊ณ  ์‹ถ์„ ๋•Œ๋„ call์„ ์‚ฌ์šฉํ•˜๋ฉด ๋Šฅ๋ ฅ์„ ๋นŒ๋ฆด ์ˆ˜ ์žˆ๋‹ค.
Object.prototype.hasOwnProperty.call(javaScript, key);์„ ์‚ฌ์šฉํ•ด์•ผ ์˜จ์ „ํžˆ ์ž์‹ ์˜ ๊ฐ์ฒด๋งŒ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค..

์œ„์˜ ์˜ˆ์‹œ์™€ ๊ฐ™์ด ๊ธฐ์กด ๊ธฐ๋Šฅ์ด ์˜ค์—ผ๋  ์ผ์ด ์—†๋Š”๋Œ€๋„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ด์œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž„์˜๋กœ ์กฐ์ƒ ๊ฐ์ฒด์— ์ƒˆ๋กœ์šด ํ”„๋กœํผํ‹ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ํ”„๋กœํ† ํƒ€์ž…์„ ์˜ค์—ผ ์‹œ์ผฐ์„ ๋•Œ์— ์ž์‹ ์ด ๋งŒ๋“  ๊ฐ์ฒด javaScript์˜ key ๊ฐ’์„ ์กฐํšŒํ•˜๋ฉด ์กฐ์ƒ๊ฐ์ฒด์— ๋งŒ๋“  ํ”„๋กœํผํ‹ฐ์˜ ๊ฐ’๊นŒ์ง€ ๋ชจ๋‘ ์กฐํšŒ๊ฐ€ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜๋“œ์‹œ Object.prototype.hasOwnProperty.call(javaScript, key); ์‚ฌ์šฉํ•ด์ฃผ๋Š” ๊ฒŒ ์ข‹๋‹ค.

Object.prototype โžก๏ธ {} ๋‚˜ ({}) ๋กœ ๋Œ€์ฒด ๊ฐ€๋Šฅํ•˜๋‹ค

๐Ÿ“Œfor...of

// iterable(๋ฐ˜๋ณต์ด ๊ฐ€๋Šฅํ•œ) = String, Array, Array-like
//! for...of๋Š” ์ดํ„ฐ๋Ÿฌ๋ธ”ํ•œ ์•„์ด๋“ค๋งŒ ์‚ฌ์šฉ๊ฐ€๋Šฅ
const arryLike = {
  0: 'body',
  1: 'head',
  2: 'div',
  length: 3,
}; //% ๋ฐฐ์—ด์ฒ˜๋Ÿผ ์ธ๋ฑ์Šค์™€ ๊ธธ์ด๊ฐ€ ์กด์žฌํ•˜์ง€๋งŒ ๋ฐฐ์—ด์€ ์•„๋‹˜ (์™„์ „ํ•œ ์œ ์‚ฌ๋ฐฐ์—ด์€ ์•„๋‹˜)/ ๊ฐ์ฒด๋Š” ์ดํ„ฐ๋Ÿฌ๋ธ”ํ•˜์ง€ ์•Š์Œ
for (let value of languages) {
  const name = value.name;

  // if (name === 'Java') break;
  if (name.includes('Java') && name.length < 5) break; //! JavaScript๋„ Java๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ถœ๋ ฅ๋˜์ง€ ์•Š๋Š”๋‹ค.

  console.log(name);
}

๐Ÿ“Œํ•จ์ˆ˜

function plus(a, b){ // a, b ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜(parameter), ์ธ์ž
    return a + b;
}
let result = plus(1, 2); // 1, 2 ๋Š” ์ธ์ˆ˜(argument)

ํ•จ์ˆ˜ ์ด๋ฆ„์ง“๊ธฐ

ํ•จ์ˆ˜๋Š” ์–ด๋–ค ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ๋ฅผ ๋ชจ์•„๋†“์€ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•จ์ˆ˜์˜ ์ด๋ฆ„์€ ๋Œ€๊ฐœ ๋™์‚ฌ์ด๋‹ค.

  • ๊ฐ„๊ฒฐํ•˜๊ณ  ๋ช…ํ™•ํ•ด์•ผ ํ•œ๋‹ค.
  • ํ•จ์ˆ˜๊ฐ€ ์–ด๋–ค ๋™์ž‘์„ ํ•˜๋Š”์ง€ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
  • ์ฝ”๋“œ๋ฅผ ์ฝ๋Š” ์‚ฌ๋žŒ์ด ํ•จ์ˆ˜ ์ด๋ฆ„๋งŒ ๋ณด๊ณ ๋„ ํ•จ์ˆ˜๊ฐ€ ์–ด๋–ค ๊ธฐ๋Šฅ์„ ํ•˜๋Š”์ง€ ํžŒํŠธ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

getโ€ฆ : ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•จ
calcโ€ฆ : ๋ฌด์–ธ๊ฐ€๋ฅผ ๊ณ„์‚ฐํ•จ
createโ€ฆ : ๋ฌด์–ธ๊ฐ€๋ฅผ ์ƒ์„ฑํ•จ
checkโ€ฆ :๋ฌด์–ธ๊ฐ€๋ฅผ ํ™•์ธํ•˜๊ณ  ๋ถˆ๋ฆฐ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•จ


โญโŒ๐Ÿ’ฏ ํ•จ์ˆ˜๋Š” ๋™์ž‘ ํ•˜๋‚˜๋งŒ ๋‹ด๋‹นํ•ด์•ผ ํ•œ๋‹ค.

๋…๋ฆฝ์ ์ธ ๋‘ ๊ฐœ์˜ ๋™์ž‘์€ ๋…๋ฆฝ๋œ ํ•จ์ˆ˜ ๋‘ ๊ฐœ์—์„œ ๋‚˜๋ˆ ์„œ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•œ ์žฅ์†Œ์—์„œ ๋‘ ๋™์ž‘์„ ๋™์‹œ์— ํ•„์š”๋กœ ํ•˜๋Š” ๊ฒฝ์šฐ๋ผ๋„ ๋ง์ด์ฃ (์ด ๊ฒฝ์šฐ๋Š” ์ œ3์˜ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ๊ทธ๊ณณ์—์„œ ๋‘ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค).

๐Ÿ˜ฅ๊ฐœ๋ฐœ์ž๋“ค์ด ๋นˆ๋ฒˆํžˆ ํ•˜๋Š” ์‹ค์ˆ˜
getAge ํ•จ์ˆ˜๋Š” ๋‚˜์ด๋ฅผ ์–ป์–ด์˜ค๋Š” ๋™์ž‘๋งŒ ์ˆ˜ํ–‰ ํ•ด์•ผํ•œ ๋‹ค.
alert ์ฐฝ์— ๋‚˜์ด๋ฅผ ์ถœ๋ ฅํ•ด ์ฃผ๋Š” ๋™์ž‘์€ ์ด ํ•จ์ˆ˜์— ๋“ค์–ด๊ฐ€์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.
createForm ํ•จ์ˆ˜๋Š” form์„ ๋งŒ๋“ค๊ณ  ์ด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋™์ž‘๋งŒ ํ•ด์•ผ ํ•œ๋‹ค.
form์„ ๋ฌธ์„œ์— ์ถ”๊ฐ€ํ•˜๋Š” ๋™์ž‘์ด ํ•ด๋‹น ํ•จ์ˆ˜์— ๋“ค์–ด๊ฐ€ ์žˆ์œผ๋ฉด ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

profile
์ง„์ฃผ๋ง๋”ฉ๋™๐ŸŽต

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