๐Ÿชด ์„ฑ์žฅ์ผ์ง€

์ฑ… ํ–‰๋ณตํ•œ ์ด๊ธฐ์ฃผ์˜์ž(์›จ์ธ ๋‹ค์ด์–ด)์˜ ๋‚ด์šฉ์— ์ž๊ทน๋ฐ›์•„ ์‹œ์ž‘ํ•˜๋Š” ์†Œ๋ฐ•ํ•œ ์„ฑ์žฅ๊ธฐ๋ก

์‚ด์•„์žˆ๋Š” ๊ฝƒ๊ณผ ์ฃฝ์€ ๊ฝƒ์€ ์–ด๋–ป๊ฒŒ ๊ตฌ๋ณ„ํ•˜๋Š”๊ฐ€?
์„ฑ์žฅํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ์‚ด์•„ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.
์ƒ๋ช…์˜ ์œ ์ผํ•œ ์ฆ๊ฑฐ๋Š” ์„ฑ์žฅ์ด๋‹ค!

๐ŸŒณ ํ‚ค์›Œ๋“œ

โญ JavaScript๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น

๊ฐ์ฒด์—์„œ ๊ฐ์ฒด ๋‚ด๋ถ€์˜ ์†์„ฑ๊ณผ ํ• ๋‹นํ•˜๋Š” ๋ณ€์ˆ˜๋ช…์ด ๊ฐ™์„ ๋•Œ ์•„๋ž˜์™€ ๊ฐ™์ด ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

const { body } = document;
// ์œ„์™€ ์•„๋ž˜๋Š” ๊ฐ™์Šต๋‹ˆ๋‹ค.
const body = document.body;

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ฐฐ์—ด์€ ๊ทธ ์ˆœ์„œ๋ฅผ ์ง€ํ‚ค๋Š” ์„ ์—์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ํ‘œํ˜„์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

const arr = [1, 2, 3];
const [a, b, c] = arr;
//์œ„์™€ ์•„๋ž˜๋Š” ๊ฐ™์Šต๋‹ˆ๋‹ค.
const a = arr[0];
const b = arr[1];
const c = arr[2];

โญ JavaScript์ด๋ฒคํŠธ ๋ฒ„๋ธ”๋ง

์ด๋ฒคํŠธ ๋ฒ„๋ธ”๋ง์ด๋ž€ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ, ๋ถ€๋ชจ ํƒœ๊ทธ์—๋„ ๋™์ผํ•œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ํ˜„์ƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค.
๋งˆ์น˜ ๊ฑฐํ’ˆ์ด ์œ„๋กœ ์ƒ์Šนํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์•„ ๋ฒ„๋ธ”๋ง์ด๋ผ๊ณ  ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

<body>
  <div id="A">
    <div id="B">
      <div id="C"></div>
    </div>
  </div>
</body>
const $A = document.querySelector('#A');
$A.addEventListener('click', (event) => {
  console.log('C div๋ฅผ ํด๋ฆญํ•ด๋„ ๊ทธ ๋ถ€๋ชจ์ธ B, A ๊ทธ๋ฆฌ๊ณ  body๊นŒ์ง€ ํด๋ฆญ ์ด๋ฒคํŠธ๊ฐ€ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.');
  /* 1๏ธโƒฃ event.target
  event.target์€ ๋ง๊ทธ๋Œ€๋กœ ์ด๋ฒคํŠธ์˜ ํƒ€๊ฒŸ์œผ๋กœ ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ ํƒœ๊ทธ๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.
  ์—ฌ๊ธฐ์„  div C๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.
  */
  /* 2๏ธโƒฃ event.currentTarget
 event.currentTarget์€ ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒํ•œ ํƒœ๊ทธ๊ฐ€ ์•„๋‹Œ, ์ด๋ฒคํŠธ๋ฅผ ์—ฐ๊ฒฐํ•œ ํƒœ๊ทธ๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.
 ์—ฌ๊ธฐ์„  div A๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.
 */
});

JavaScriptparentNode, children

<div class="parent">
  <div class="child01"></div>
  <div class="child02"></div>
  <div class="child03"></div>
</div>
// ์ž์‹ ํƒœ๊ทธ -> ์—ฌ๋Ÿฌ๊ฐœ์ด๋ฏ€๋กœ `์œ ์‚ฌ ๋ฐฐ์—ด`์ด ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.
// ๋ฐฐ์—ด์ฒ˜๋Ÿผ ์ƒ๊ฒผ์ง€๋งŒ, ๊ฐ์ฒด์ด๋ฏ€๋กœ ๋ฐฐ์—ด์˜ ๋‚ด์žฅํ•จ์ˆ˜๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
// ์ด ๋•Œ, Array.from(๊ฐ์ฒด)๋ฅผ ํ†ตํ•ด ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค์–ด์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
document.querySelector('.parent').children; // {0: div, 1: div, 2: div}

// ๋ถ€๋ชจ ํƒœ๊ทธ
document.querySelector('.child01').parentNode; // div parent ํƒœ๊ทธ

JavaScriptevery์™€ some

๋ฐฐ์—ด์˜ ๋‚ด์žฅํ•จ์ˆ˜๋กœ ๋ฐฐ์—ด์˜ ๊ฐ’๋“ค์— ๋Œ€ํ•œ ํ‰๊ฐ€(boolean)์„ ๋ฐ˜ํ™˜

// ๋ฐฐ์—ด์˜ ๋ชจ๋“  ๊ฐ’์ด 9๋ณด๋‹ค ์ž‘์œผ๋ฉด true, ํ•˜๋‚˜๋ผ๋„ 9 ์ด์ƒ์ด๋ฉด false
arr.every((value) => value < 9);

// ๋ฐฐ์—ด์˜ ๊ฐ’ ํ•˜๋‚˜๋งŒ 9๋ณด๋‹ค ์ž‘์œผ๋ฉด true, ๋ชจ๋‘ 9 ์ด์ƒ์ด๋ฉด false
arr.some((value) => value < 9);