๋ฐ˜์‘ํ˜•

๋ฆฌ์•กํŠธ๋งŒ ํ•˜๋‹ค๋ณด๋‹ˆ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ง€์‹์ด ๋ชจ๋‘ ์ฆ๋ฐœํ•ด๋ฒ„๋ฆฐ ๋Š๋‚Œ....

๋ฉ”์„œ๋“œ๋ช…๋“ค์„ ์ฃ„๋‹ค ๊นŒ๋จน์–ด๋ฒ„๋ฆฐ ๊ฒƒ ๊ฐ™๋‹ค. ๊ธ‰ํ•˜๊ฒŒ ํˆฌ๋‘ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋ณด๋ฉฐ ๊ธฐ์–ตํ•ด๋‚ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.

 

DOM์„ ์กฐ์ž‘ํ•˜๊ธฐ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๋ฉ”์„œ๋“œ ์ค‘ ์–ด๋–ค ๊ฒƒ์„ ์„ ํƒํ•ด์•ผ ํ•  ์ง€ ๊ณ ๋ฏผ์ด ๋˜์—ˆ๋‹ค.

๋งค๋ฒˆ ๊นŒ๋จน์–ด์„œ ๋งค๋ฒˆ ๊ณ ๋ฏผํ•˜๊ณ  ๋งค๋ฒˆ ๊ฒ€์ƒ‰ํ•˜๊ณ !!! ์ง€๊ฒจ์›Œ... ์ด๋ฒˆ์—” ์ •๋ฆฌํ•ด๋†”์•ผ์ง€.


ํ…์ŠคํŠธ ์ฝ˜ํ…์ธ ๋ฅผ ๋‹ค๋ฃจ๊ธฐ:  innerText,textContent

๐Ÿ“š innerText

  • ์š”์†Œ์˜ ๋ Œ๋”๋ง๋œ ํ…์ŠคํŠธ๋งŒ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์— ์Šคํƒ€์ผ์ด ์ ์šฉ๋œ ํ›„์˜ ํ…์ŠคํŠธ๋งŒ ๊ฐ€์ ธ์˜จ๋‹ค.
  • display: none์ด๋‚˜ visibility: hidden์œผ๋กœ ์ˆจ๊ฒจ์ง„ ์š”์†Œ์˜ ํ…์ŠคํŠธ๋„ textContent๋กœ๋Š” ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, innerText๋Š” ์ˆจ๊ฒจ์ง„ ์š”์†Œ์˜ ํ…์ŠคํŠธ๋ฅผ ๋ฌด์‹œํ•œ๋‹ค.
  • textContent๋ณด๋‹ค ๋ Œ๋”๋ง ๊ฒฐ๊ณผ์— ์˜์กดํ•˜๋ฏ€๋กœ ๋ณต์žกํ•œ ๊ตฌ์กฐ์—์„œ๋Š” ์กฐ๊ธˆ ๋” ๊นŒ๋‹ค๋กœ์šธ ์ˆ˜ ์žˆ๋‹ค.
  • innerText๋Š” DOM์˜ ์Šคํƒ€์ผ์„ ๊ณ„์‚ฐํ•˜๋ฏ€๋กœ textContent๋ณด๋‹ค ์•ฝ๊ฐ„ ๋Š๋ฆด ์ˆ˜ ์žˆ์ง€๋งŒ, ์ผ๋ฐ˜์ ์ธ ์ƒํ™ฉ์—์„œ๋Š” ํฐ ์ฐจ์ด๊ฐ€ ์—†๋‹ค.

๐Ÿ“š textContent

  •  ์š”์†Œ์˜ ํ…์ŠคํŠธ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๊ฐ€์ ธ์˜จ๋‹ค. HTML ํƒœ๊ทธ๋Š” ํ…์ŠคํŠธ๋กœ ์ฒ˜๋ฆฌ๋˜๋ฉฐ, ํƒœ๊ทธ๊ฐ€ ๋ Œ๋”๋ง๋˜์ง€ ์•Š๋Š”๋‹ค.
  • ๋”ฐ๋ผ์„œ ํƒœ๊ทธ ์—†์ด ์ˆœ์ˆ˜ํ•œ ํ…์ŠคํŠธ๋งŒ ๋‹ค๋ฃฐ ๋•Œ ์ ํ•ฉํ•˜๋‹ค.
  • ์„ฑ๋Šฅ ์ธก๋ฉด์—์„œ ๋งค์šฐ ๋น ๋ฅด๋ฉฐ, DOM์„ ๋‹ค์‹œ ๋ Œ๋”๋งํ•˜์ง€ ์•Š๊ณ  ํ…์ŠคํŠธ๋งŒ ์—…๋ฐ์ดํŠธ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๊ฑฐ์˜ ์—†๋‹ค.
  • ํ…์ŠคํŠธ๋งŒ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์— HTML ๊ตฌ์กฐ๋ฅผ ๊ณ ๋ คํ•  ํ•„์š”๊ฐ€ ์—†์–ด ์œ ์ง€ ๋ณด์ˆ˜๊ฐ€ ์‰ฝ๋‹ค.

HTML ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์‚ฝ์ž…: innerHTML, appendChild, insertAdjacentHTML

๐Ÿ“š innerHTML 

  • ์š”์†Œ ๋‚ด๋ถ€์˜ HTML์ด๋‚˜ XML ๋งˆํฌ์—…์„ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ์„ค์ •ํ•œ๋‹ค.
  • HTML ๋งˆํฌ์—…์„ ํฌํ•จํ•œ ๋ฌธ์ž์—ด์„ ์‰ฝ๊ฒŒ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ๋‹ค. ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค.
  • ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ,  ํฌ๋กœ์Šค ์‚ฌ์ดํŠธ ์Šคํฌ๋ฆฝํŒ…(XSS) ๊ณต๊ฒฉ์— ์ทจ์•ฝํ•˜๋‹ค.
    • ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ์ถ”๊ฐ€์ ์œผ๋กœ HTML์„ ์‚ฝ์ž…ํ•˜๊ณ ์ž ํ•  ๋•Œ๋Š” insertAdjacentHTML() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ์ ํ•ฉํ•˜๋‹ค.
      ..Why๐Ÿง?
      innerHTML์€ ์š”์†Œ์˜ ๋ชจ๋“  ๋‚ด์šฉ์„ ๋‹ค์‹œ ๋ Œ๋”๋งํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๊ณ , ๊ธฐ์กด์˜ ์ž์‹ ์š”์†Œ๊ฐ€ ์†์ƒ๋  ์ˆ˜ ์žˆ๋‹ค. ๋ฐ˜๋ฉด, insertAdjacentHTML()์€ ๊ธฐ์กด์˜ DOM ๊ตฌ์กฐ๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ์ƒˆ๋กœ์šด HTML์„ ํšจ์œจ์ ์œผ๋กœ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ์–ด ์„ฑ๋Šฅ๊ณผ ์•ˆ์ •์„ฑ ๋ฉด์—์„œ ์œ ๋ฆฌํ•˜๋‹ค.

๐Ÿ“š  insertAdjacentHTML() 

  • element.insertAdjacentHTML(position, text)
  • ๊ธฐ์กด ์š”์†Œ๋ฅผ ์œ ์ง€ํ•œ ์ฑ„๋กœ ์ง€์ •๋œ ์œ„์น˜(position)์— HTML ๋ฌธ์ž์—ด์„ ํŒŒ์‹ฑํ•˜์—ฌ ์š”์†Œ๋กœ ์‚ฝ์ž…ํ•œ๋‹ค.
  • insertAdjacentHTML์€ ์š”์†Œ๋ฅผ ๋‹ค์‹œ ํŒŒ์‹ฑํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ํ•ด๋‹น ์š”์†Œ ์•ˆ์˜ ๊ธฐ์กด ์ž์‹ ์š”์†Œ๋ฅผ ์†์ƒ์‹œํ‚ค์ง€ ์•Š๋Š”๋‹ค.
  • HTML์„ ํ•œ ๋ฒˆ์— ์ถ”๊ฐ€ํ•˜๋ฏ€๋กœ ์„ฑ๋Šฅ์ด ๋น ๋ฅผ ์ˆ˜ ์žˆ์ง€๋งŒ ๋ณด์•ˆ ๋ฌธ์ œ(XSS: Cross-site scripting)๋กœ ์ธํ•ด ์™ธ๋ถ€ ์ž…๋ ฅ์„ ์‚ฝ์ž…ํ•  ๋•Œ๋Š” ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค.
const el = document.getElementById('el')
el.insertAdjacentHTML('beforebegin', '<span>Before Begin</span>');// el ์ด์ „์— ์‚ฝ์ž…
el.insertAdjacentHTML('afterbegin', '<span>After Begin</span>'); // el์˜ ์ฒซ ๋ฒˆ์งธ ์ž์‹ ์ด์ „์— ์‚ฝ์ž…
el.insertAdjacentHTML('beforeend', '<span>Before End</span>'); // el์˜ ๋งˆ์ง€๋ง‰ ์ž์‹ ์ดํ›„์— ์‚ฝ์ž… 
el.insertAdjacentHTML('afterend', '<span>After End</span>'); // el ์ดํ›„์— ์‚ฝ์ž…
<span> --A-- </span>
<span>Before Begin</span> 
<span id="el"> 
	<span>After Begin</span> 
    <span> --B-- </span>
    --C-- 
    <span> --D-- </span> 
    <span>Before End</span> 
 </span> 
 <span>After End</span> 
 <span> --E-- </span>

 

๐Ÿ“š appendChild()

  • ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ์š”์†Œ๋ฅผ ๊ธฐ์กด DOM์˜ ์ž์‹์œผ๋กœ ์ถ”๊ฐ€ํ•œ๋‹ค.
  • ์ฝ”๋“œ๊ฐ€ ๋ช…ํ™•ํ•˜๊ณ  ์ง๊ด€์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ์œ ์ง€ ๋ณด์ˆ˜์™€ ๊ฐ€๋…์„ฑ์ด ๋›ฐ์–ด๋‚˜๋‹ค.
  • ์—ฌ๋Ÿฌ ์š”์†Œ๋ฅผ ํ•œ ๋ฒˆ์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ ์•ฝ๊ฐ„์˜ ์„ฑ๋Šฅ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์žˆ์ง€๋งŒ, ์ผ๋ฐ˜์ ์œผ๋กœ ์„ฑ๋Šฅ์ด ์–‘ํ˜ธํ•˜๋‹ค.

โœจ ๊ฒฐ๋ก 

innerText vs textContent

innerText๋Š” ๋ Œ๋”๋ง๋œ ํ…์ŠคํŠธ๋งŒ ๋‹ค๋ฃจ๊ธฐ ๋•Œ๋ฌธ์— ์Šคํƒ€์ผ์— ์˜์กด์ ์ด๋‹ค. ๋˜ํ•œ ์ˆจ๊ฒจ์ง„ ์š”์†Œ์˜ ํ…์ŠคํŠธ๋Š” ๋ฌด์‹œ๋˜๋ฏ€๋กœ, ์ˆœ์ˆ˜ํ•œ ํ…์ŠคํŠธ ์ฒ˜๋ฆฌ์—์„œ๋Š” textContent๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋”์šฑ ๋น ๋ฅด๊ณ  ๋‹จ์ˆœํ•˜๋‹ค. DOM ๊ตฌ์กฐ๋ฅผ ๋‹ค์‹œ ๋ Œ๋”๋งํ•˜์ง€ ์•Š๊ณ  ์ˆœ์ˆ˜ ํ…์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์„ฑ๋Šฅ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๊ฑฐ์˜ ์—†๋‹ค. 

 

innerHTML vs insertAdjacentHTML vs appendChild

innerHTML์€ ๊ธฐ์กด์˜ ๋ชจ๋“  ๋‚ด์šฉ์„ ๋ฎ์–ด์“ฐ๊ธฐ ๋•Œ๋ฌธ์—, ์„ฑ๋Šฅ์ด ์ €ํ•˜๋  ์ˆ˜ ์žˆ๋‹ค. insertAdjacentHTML์€ ๊ธฐ์กด ์š”์†Œ๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ์ƒˆ๋กœ์šด HTML์„ ์ถ”๊ฐ€ํ•˜๋ฏ€๋กœ ๋” ๋‚˜์€ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. (์ž์‹์š”์†Œ์˜ ํŒŒ์‹ฑ๊ณผ์ •์ด ์ƒ๋žต๋˜์–ด ๋” ๋น ๋ฅด๊ณ  ์„ฑ๋Šฅโฌ†)

 

ํ•˜์ง€๋งŒ insertAdjacentHTML๊ณผ innerHTML์€ XSS ๊ณต๊ฒฉ์— ์ทจ์•ฝํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด appendChild๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ์•ˆ์ „ํ•˜๋‹ค๊ณ  ํŒ๋‹จํ•˜์˜€๋‹ค. ์„ฑ๋Šฅ ๋ฉด์—์„œ๋„ ์ผ๋ฐ˜์ ์ธ ์‚ฌ์šฉ์—์„œ๋Š” ์ถฉ๋ถ„ํ•˜๋‹ค๊ณ  ์ƒ๊ฐ๋œ๋‹ค.

 


๐Ÿง ์ฐธ๊ณ 
https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/innerText
https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent

https://developer.mozilla.org/ko/docs/Web/API/Element/innerHTML

https://developer.mozilla.org/ko/docs/Web/API/Element/insertAdjacentHTML

https://developer.mozilla.org/en-US/docs/Web/API/Node/appendChild

๋ฐ˜์‘ํ˜•
๋ฐ˜์‘ํ˜•

# ์š”์•ฝ

  • ๋‹จ์ˆœํžˆ ๋ฌด์–ธ๊ฐ€๋ฅผ ๋ฐ˜๋ณตํ•˜๋ฉด์„œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ โžก forEach (์›๋ณธ ๋ฐฐ์—ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Œ / ์ƒˆ๋กœ์šด ๋ฐฐ์—ด ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š์Œ)
  • ์›๋ณธ ๋ฐฐ์—ด์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ๋ณ€ํ˜•๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋”ฐ๋กœ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์žˆ์„ ๋•Œ โžก map (์›๋ณธ ๋ฐฐ์—ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Œ / ์ƒˆ๋กœ์šด ๋ฐฐ์—ด ๋ฐ˜ํ™˜)

โœ… forEach

  • ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
const numbers = [1, 2, 3];
numbers.forEach(num => {
  console.log(num * 2); // 2, 4, 6 ์ถœ๋ ฅ
});
console.log(numbers); // [1, 2, 3] ์›๋ณธ ๋ฐฐ์—ด์€ ๊ทธ๋Œ€๋กœ!
  • forEach๋Š” ๋ฐฐ์—ด์˜ ์š”์†Œ๋“ค์„ ์ˆœํšŒํ•˜๋ฉด์„œ ๊ฐ ์š”์†Œ๋ฅผ 2๋ฐฐ๋กœ ๊ณ„์‚ฐํ•ด์„œ ์ถœ๋ ฅํ•˜์ง€๋งŒ, ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๋Š”๋‹ค.
    (์›๋ณธ ๋ฐฐ์—ด์€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Œ)
  • ์›๋ณธ ๋ฐฐ์—ด์„ ์œ ์ง€ํ•˜๋ฉด์„œ, ๋‹จ์ˆœํžˆ ๋ฐ˜๋ณต ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์‚ฌ์šฉ(๋ฐ์ดํ„ฐ๋ฅผ ํ™”๋ฉด์— ์ถœ๋ ฅํ•˜๊ฑฐ๋‚˜, ๋กœ๊ทธ ์ฐ์„ ๊ฒฝ์šฐ ์‚ฌ์šฉ๋จ)

โœ… map

  • ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ์— ๋Œ€ํ•ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
const numbers = [1, 2, 3];
const doubled = numbers.map(num => num * 2);
console.log(doubled); // [2, 4, 6] ๋ณ€ํ˜•๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒˆ ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜
console.log(numbers); // [1, 2, 3] ์›๋ณธ ๋ฐฐ์—ด์€ ๊ทธ๋Œ€๋กœ ์œ ์ง€!
  • map์€ ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉฐ ๊ฐ ์š”์†Œ๋ฅผ 2๋ฐฐ๋กœ ๋งŒ๋“ค์–ด ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • ์›๋ณธ ๋ฐฐ์—ด์„ ๊ทธ๋Œ€๋กœ ๋‘๊ณ  ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•œ๋‹ค.
    โžก ์›๋ณธ ๋ฐฐ์—ด์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์Œ์œผ๋กœ ๋ฐ์ดํ„ฐ ์†์‹ค ๋ง‰์„ ์ˆ˜ ์žˆ๊ณ , ๋ณ€ํ˜•๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์–ด๋”˜๊ฐ€ ์ €์žฅํ•  ๋•Œ ์œ ์šฉํ•˜๋‹ค.
    (ex: ๊ฐ€๊ฒฉ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€ํ˜•ํ•ด์„œ ํ• ์ธ๊ฐ€๋ฅผ ๊ณ„์‚ฐํ•œ ํ›„, ์ด๋ฅผ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด๋กœ ์ €์žฅ ๊ฐ€๋Šฅ)

 

๐Ÿ”ฅ map์„ ์‚ฌ์šฉํ•ด์•ผ ํ•  ์ƒํ™ฉ์—์„œ forEach๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ

1. ๋ณ€ํ˜•๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์–ป์„ ์ˆ˜ ์—†๋‹ค.

forEach๋Š” ๋‹จ์ˆœํžˆ ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋ฟ์ด๋ฏ€๋กœ, ๋ณ€ํ˜•๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

const numbers = [1, 2, 3];
const doubled = numbers.forEach(num => num * 2);
console.log(doubled); // undefined

forEach๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— doubled ๋ณ€์ˆ˜๋Š” undefined๊ฐ€ ๋œ๋‹ค.
๋ณ€ํ˜•๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฐ์—ด๋กœ ์–ป์œผ๋ ค๋Š” ์ƒํ™ฉ์—์„œ forEach๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, ๋ฐ์ดํ„ฐ๋ฅผ ๋”ฐ๋กœ ์ €์žฅํ•  ์ˆ˜ ์—†๋‹ค.

const numbers = [1, 2, 3];
numbers.forEach(num => {
  num = num * 2; // ์ž‘์—…์€ ์ˆ˜ํ–‰๋˜์ง€๋งŒ
});
console.log(numbers); // [1, 2, 3] ์›๋ณธ ๋ฐฐ์—ด์€ ์—ฌ์ „ํžˆ ๊ทธ๋Œ€๋กœ

๋ณ€ํ˜•๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์—†์œผ๋‹ˆ ์žฌ์‚ฌ์šฉ๋„ ๋‹น์—ฐ ๋ถˆ๊ฐ€..

2. ์ฝ”๋“œ๊ฐ€ ๋ณต์žกํ•ด์ง€๊ณ  ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง„๋‹ค.

map์€ "๋ณ€ํ˜•๋œ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜"ํ•˜๋Š” ๋ช…ํ™•ํ•œ ๋ชฉ์ ์„ ๊ฐ€์ง€๊ณ  ์‚ฌ์šฉ๋œ๋‹ค. ๋ฐ˜๋ฉด, forEach๋Š” ์ฃผ๋กœ "๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉด์„œ ์ž‘์—…์„ ์ˆ˜ํ–‰"ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค. ์ด๋Ÿฐ ์ฐจ์ด๋ฅผ ๋ฌด์‹œํ•˜๊ณ  forEach๋ฅผ ๋ณ€ํ˜• ์ž‘์—…์— ์‚ฌ์šฉํ•˜๋ฉด, ์ฝ”๋“œ์˜ ์˜๋„๊ฐ€ ๋ถˆ๋ถ„๋ช…ํ•ด์ง€๊ณ , ์ด๋Š” ๊ฒฐ๊ตญ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ๋–จ์–ด๋œจ๋ฆฌ๊ฒŒ ๋œ๋‹ค.

const numbers = [1, 2, 3];
let doubled = [];
numbers.forEach(num => {
  doubled.push(num * 2);
});

forEach๋กœ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ง์ ‘ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜๊ณ  ๊ฐ๊ฐ์˜ ์š”์†Œ๋ฅผ ๋ฐฐ์—ด์— ๋„ฃ๋Š” ์ž‘์—…์„ ํ•ด์•ผ ํ•œ๋‹ค. ์ฝ”๋“œ๋Š” ๋ณต์žกํ•ด์ง€๊ณ  ๊ฐ€๋…์„ฑ์€ ๋–จ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ์ด ๊ฒฝ์šฐ map์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ์ง๊ด€์ ์ด๊ณ  ์˜๋„๊ฐ€ ๋ช…ํ™•ํ•˜๋‹ค.

๋ฐ˜์‘ํ˜•
๋ฐ˜์‘ํ˜•

์˜ค๋Š˜์€ ์žŠ๊ณ  ์žˆ๋˜ ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ์‹ค๊ธฐ ๊ฒฐ๊ณผ ๋ฐœํ‘œ๋‚ !

๊ทธํ† ๋ก ๊ธฐ๋‹ค๋ ธ๋˜ ํ•ฉโ˜…๊ฒฉ  

ํ•˜์ง€๋งŒ ์ƒ๊ฐ๋งŒํผ ๊ธฐ์˜์ง€ ์•Š๋‹ค........

 

์ •์ฒ˜๊ธฐ ์ค€๋น„ ์ „์—” ๋ฌด์กฐ๊ฑด ๊ฐœ๋ฐœ์ž๊ฐ€ ๋  ๊ฑฐ์•ผ!!!!!! ํ–ˆ๋Š”๋ฐ

๊ฐœ๋ฐœ ํŠธ๋ Œ๋“œ๋Š” ์‰ด ํ‹ˆ ์—†์ด ๋ฐ”๋€Œ๊ณ  ์ฒœ์žฌ๋“ค์€ ๋งŽ๋‹ค.

๊ฐœ๋ฐœ ์ •๋ณต์„ ๊ฟˆ๊ฟจ์ง€๋งŒ ๊ณต๋ถ€ํ• ์ˆ˜๋ก ์ •๋ณต์€์ปค๋…• ๋‚˜์˜ ํ•˜์ฐฎ์Œ๋งŒ ์ฒด๊ฐํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

ํ•ด๋„ ํ•ด๋„ ๋ถ€์กฑํ•œ ๋Š๋‚Œ. ์žฌ๋ฐŒ์ง€๋งŒ ์ฆ๊ฒ์ง€ ์•Š์€ ์š”์ƒํ•œ ๋Š๋‚Œ๐Ÿ™ƒ

๋งˆ์น˜ ํƒˆ์ถœํ•˜์ง€ ๋ชปํ•˜๊ณ  ๋๋‚˜๋ฒ„๋ฆฌ๋Š” ๋ฐฉ ํƒˆ์ถœ ๊ฒŒ์ž„ ๊ฐ™์•„..

 

๊ทธ๋ž˜์„œ์ธ์ง€ '๊ฐœ๋ฐœ์ž๊ฐ€ ๋‚˜์™€ ๋งž๋Š” ๊ธธ์ธ๊ฐ€?'๋ผ๋Š” ์˜๊ตฌ์‹ฌ์ด ๊ณ„์†ํ•ด์„œ ๊ฟˆํ‹€๊ฟˆํ‹€..

์ทจ์—…ํ•˜๊ธฐ์—” ๋ฌด์„ญ๊ณ  ๊ทธ๋งŒ๋‘๊ธฐ์—” ์žฌ๋ฐŒ๋Š” ์–ด์ •์ฉกํ•œ ์ทจ๋ฏธ์˜ ์˜์—ญ...

 

ํ•˜์ง€๋งŒ ๋‚œ ์‹œ๊ฐ„ ๋งŽ์€ ๋ฐฑ์ˆ˜๋‹ˆ๊นŒ^0^

์ด๋ฒˆ ๊ธฐํšŒ์— ์—ฌ์œ ๋ฅผ ๊ฐ–๊ณ  ๊ฐœ๋ฐœ ํฌํ•จ ๊ด€์‹ฌ ์žˆ๋Š” ๊ฒƒ๋“ค์„ ๋‹ค ํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค!

๋จธ๋ฆฟ์†๋งŒ ๋ฐ”์˜๊ณ  ๋ชธ๋šฑ์ด๋Š” ํ•œ์—†์ด ๊ฒŒ์„๋ €๋˜ ๋‚˜..  

๋ฐ˜์„ฑ์˜ ์‹œ๊ฐ„์„ ๊ฐ–๊ณ  ๊ณ ๋ฏผํ–ˆ๋˜ ๊ฒƒ๋“ค์„ ํ–‰๋™์œผ๋กœ ์˜ฎ๊ฒจ๋ด์•ผ๊ฒ ๋‹ค.

 

 

ํ•˜๋ฃจํ•˜๋ฃจ ๊ด€์‹ฌ์‚ฌ๋“ค์„ ์ •๋ฆฌํ•ด ๋ณด๋ฉด ๋‚ด๊ฐ€ ๋ญ˜ ์ข‹์•„ํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๊ฒ ์ง€.

๋ฐ˜๊ฐ€์›Œ ํ‹ฐ์Šคํ† ๋ฆฌ, ์•ž์œผ๋กœ ์ž˜ ๋ถ€ํƒํ•ด :)

 

 

 

๋ฐ˜์‘ํ˜•

+ Recent posts