Front-end/JavaScript(48)
-
๋ชจ๋์ ๋ญ๊น
๋ชฉ์ฐจ1. ๋ชจ๋์ด๋2. ๋ชจ๋์ ํต์ฌ ๊ธฐ๋ฅ3. ๋ธ๋ผ์ฐ์ ํน์ ๊ธฐ๋ฅ4. ๋น๋ ํด1. ๋ชจ๋์ด๋๊ฐ๋ฐ ์ค์ธ ์ ํ๋ฆฌ์ผ์ด์ ํฌ๊ธฐ๊ฐ ์ปค์ง๋ฉด ํ์ผ์ ์ฌ๋ฌ ๊ฐ๋ก ๋ถ๋ฆฌํด์ผํ๋ ์์ ์ด ์จ๋ค.์ด๋ ๊ฒ ๋ถ๋ฆฌ๋ ํ์ผ ๊ฐ๊ฐ์ ๋ชจ๋(module)์ด๋ผ๊ณ ํ๋ค.๋ชจ๋์ ๋ณดํต ํด๋์ค ํ๋ or ๋ณต์์ ํจ์๋ก ๊ตฌ์ฑ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ๋ ๋ก ๊ตฌ์ฑ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฐ ๋ชจ๋๋ค์ ๋ค๋ฅธ๋ฐ์ ๋ถ๋ฌ์ค๊ณ , ๊ตฌ์ฑํด์ฃผ๊ณ ํ๋ ์ญํ ์ ํ๋ ๊ฒ์ด ๋ชจ๋ ์์คํ ์ด๋ค.https://ldd6cr-adness.tistory.com/354 ์๋ฐ์คํฌ๋ฆฝํธ ๋ชจ๋ ์์คํ ๋ชฉ์ฐจ1. ๊ฐ์2. ์๋ฐ์คํฌ๋ฆฝํธ ๋ชจ๋ ์์คํ 2-1. ๋ชจ๋์ ๊ตฌ์ฑ 2-2. ๋ชจ๋ ์์คํ 3. ESM (ECMAScript Module)1. ๊ฐ์JS ๊ณ์ด ํ์ผ์ ๊ฐ๋ฐ, ํ๊ฒฝ ์ค์ ๋ฑ์ ํ๋ค๋ณด๋ฉด ๋ญ๊ฐ ์๋ฐ์คํฌ๋ฆฝํธ์ ํ๊ฒฝ์ด๋ ์ค์ ..
2025.09.23 -
[WIP]๋ธ๋ผ์ฐ์ ๊ธฐ๋ณธ ๋์
๋ชฉ์ฐจ1. 002. 003. 001. ์ ๋ชฉ๋ณธ๋ฌธ 2. ์ ๋ชฉ๋ณธ๋ฌธ ์ฐธ๊ณ ๋๋ณด๊ธฐhttps://ko.javascript.info/default-browser-action
2025.09.23 -
[WIP]์ด๋ฒคํธ ์์ : ์บก์ฒ๋ง๊ณผ ๋ฒ๋ธ๋ง ํ์ฉํ๊ธฐ
๋ชฉ์ฐจ1. ์ด๋ฒคํธ ์์ 1-1. ํ ์ด๋ธ ์ ํํ๊ธฐ 1-2. ์ฌ๋ฌ๊ฐ์ง ๋ฒํผ์ ํฌํจํ ๋ฉ๋ด ๊ตฌํํ๊ธฐ2. ํ๋ ํจํด 2-1. ์นด์ดํฐ ๊ตฌํํ๊ธฐ 2-2. ํ ๊ธ๋ฌ ๊ตฌํํ๊ธฐ1. ์ ๋ชฉ๋ณธ๋ฌธ 2. ์ ๋ชฉ๋ณธ๋ฌธ ์ฐธ๊ณ ๋๋ณด๊ธฐhttps://ko.javascript.info/event-delegation
2025.09.23 -
๋ฒ๋ธ๋ง๊ณผ ์บก์ฒ๋ง
์ด๊ฑด ๋จธ๋ฉ์ด๋ ๋ค๋์ด์ธ๋ฐ, ์ํํ ์ ๋์ค๋ 200g์ ํน์ ๋ถ์๊ฐ '๋ฒ๋ธ๋ฆฌ ๋ฑ์ด'์ด๋ค.ํฌํํ ํ ์ผ์ฃผ์ผ ๋ค์ ๋ง์ด ์ ์ ์ ๋ฌํ์ง๋ง ๋์์ ์ผ์ฃผ์ผ์ด ์ง๋๋ฉด ๋ฒ๋ธ์ด ๋์ด ์ฌ๋ผ์ง๋ค. (๊ทธ๋์ ๋จธ๋ฉ์ด๋ ๋ค๋์ด์ธ๊ฐ..)๊ตญ์ ๋ฒ์์ ํต๊ณผ ์ํค๊ธฐ ์ํด ๋ค๋์ด ๋ฑ์ด ์ข์ํ๋ ๋ํต๋ น์๊ฒ ๋ด๋์ ์๋ฆฌ ์ฌ๋ฃ๋ก ์ฌ์ฉ๋๋ค. ๊ทธ๋ฅ ๋ฒ๋ธ๋ง์ ๋ณด๋๊น ์๊ฐ๋ฌ๋ค. ์ ๋ง ๋ง์๊ฒ ์๊ฒผ๋ค. ํ ๋ฆฌ์ฝ 18ํ์ฏค์ ๋์จ๋ค. ๋ชฉ์ฐจ1. ๋ฒ๋ธ๋ง2. ์บก์ฒ๋ง1. ๋ฒ๋ธ๋งํ ์์์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด,1. ์ด ์์์ ํ ๋น๋ ํธ๋ค๋ฌ๊ฐ ๋์ํ๊ณ ,2. ์ด์ด์ ๋ถ๋ชจ ์์์ ํธ๋ค๋ฌ๊ฐ ๋์ํ๋ค.๊ฐ์ฅ ์ต์๋จ์ ์กฐ์ ์์๋ฅผ ๋ง๋ ๋๊น์ง ์ด ๊ณผ์ ์ ๋ฐ๋ณตํ๋ฉฐ, ์์ ๊ฐ๊ฐ์ ํ ๋น๋ ํธ๋ค๋ฌ๊ฐ ๋์ํ๋ค. ์ด๋ ๊ฒ ์ ์ผ ๊น์ ๊ณณ์ ์๋ ์์์์ ์์ํด ๋ถ๋ชจ ์์๋ฅผ ๊ฑฐ์ฌ๋ฌ ์ฌ๋ผ๊ฐ๋ฉฐ ํธ๋ค๋ฌ๊ฐ..
2025.09.23 -
๋ธ๋ผ์ฐ์ ์ด๋ฒคํธ
๋ชฉ์ฐจ1. ๋ธ๋ผ์ฐ์ ์ด๋ฒคํธ2. ์์ฃผ ์ฌ์ฉํ๋ DOM ์ด๋ฒคํธ 2-1. ๋ง์ฐ์ค ์ด๋ฒคํธ 2-2. ํผ ์์ ์ด๋ฒคํธ 2-3. ํค๋ณด๋ ์ด๋ฒคํธ 2-4. ๋ฌธ์ ์ด๋ฒคํธ 2-5. css ์ด๋ฒคํธ3. ์ด๋ฒคํธํธ๋ค๋ฌ 3-1. DOM ํ๋กํผํฐ๋ก ์ด๋ฒคํธ ํธ๋ค๋ฌ ํ ๋น 3-2. ๋ฉ์๋๋ก ์ด๋ฒคํธ ํธ๋ค๋ฌ ํ ๋น1. ๋ธ๋ผ์ฐ์ ์ด๋ฒคํธ๋ธ๋ผ์ฐ์ ์์์ ์ด๋ฒคํธ๋ ๋ฌด์ธ๊ฐ ๋ฐ์ํ๋ค๋ ์ ํธ๋ฅผ ๋งํ๋ค.๋ชจ๋ DOM ๋ ธ๋๋ ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํจ๋ค.2. ์์ฃผ ์ฌ์ฉํ๋ DOM ์ด๋ฒคํธ1. ๋ง์ฐ์ค ์ด๋ฒคํธ์ด๋ฒคํธ์ค๋ช click์์ ์์์ ๋ง์ฐ์ค ์ผ์ชฝ ๋ฒํผ ํด๋ฆญ(tap)contextmenu์์ ์์์ ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ๋ฒํผ ํด๋ฆญmouseover /mouseout๋ง์ฐ์ค ์ปค์๋ฅผ ์์ ์๋ก ์์ง์์ ๋ /์ปค์๊ฐ ์์ ๋ฐ์ผ๋ก ์์ง์์ ๋mousedown /..
2025.09.23 -
๋ธ๋ผ์ฐ์ ์ฐฝ ์ฌ์ด์ฆ์ ์คํฌ๋กค ์ ๋ณด ์ป๊ธฐ
๋ชฉ์ฐจ1. ๋ธ๋ผ์ฐ์ ์ฐฝ ์ฌ์ด์ฆ2. ์คํฌ๋กค ์ ๋ณด ์ป๊ธฐ3. 001. ๋ธ๋ผ์ฐ์ ์ฐฝ ์ฌ์ด์ฆ๋ธ๋ผ์ฐ์ ์ฐฝ์ ์ฌ์ด์ฆ(width, height)๋ฅผ ๊ตฌํ ์ ์๋ค.documentElement.clientHeightdocumentElement.clientWidth alert(document.documentElement.clientHeight) window.innerWidth, window.innerHeight๋ก ์ฐฝ ํฌ๊ธฐ๋ฅผ ๊ตฌํ ์๋ ์์ผ๋,window๋ ์คํฌ๋กค๋ฐ ๊ณต๊ฐ๊น์ง ํฌํจ๋ ํฌ๊ธฐ๋ฅผ ๊ตฌํ๋ค. ์ด ๋ถ๋ถ ์ฐจ์ด๋ฅผ ์ธ์งํ๊ณ ํ์์ ๋ฐ๋ผ documentElement๋ window๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค. 2. ์คํฌ๋กค ์ ๋ณด ์ป๊ธฐDOM ์์์ ํ์ฌ ์คํฌ๋กค ์ํ(์คํฌ๋กค์ ์ํด ๊ฐ๋ ค์ง ์์ญ์ ๋ํ ์ ๋ณด)๋ scrollLeft, scrollT..
2025.09.22 -
๋ฉ์๋๋ก DOM ์กฐ์ํด์ ๋ฌธ์ ์์ ํ๊ธฐ
๋ชฉ์ฐจ1. ๋ฉ์๋๋ก ๋ฌธ์ ์์ ํ๊ธฐ 1-1. ์์(Element), ๋ ธ๋(Node) ์์ฑ 1-2. ์์ ์ฝ์ 1-3. HTML ๋ฌธ์์ด ์ฝ์ 1-4. ์ญ์ 1-5. ๋ณต์ 1-6. DocumentFragment ์ฌ์ฉ2. ์คํ์ผ ์ ์ฉํ๊ธฐ1. ๋ฉ์๋๋ก ๋ฌธ์ ์์ ํ๊ธฐ๋ฉ์๋๋ก ์์๋ฅผ ์์ฑํ๊ณ ์์ ํ๋ ๋ฐฉ๋ฒ๋ค์ ์์๋ณด์. 1. ์์(Element), ๋ ธ๋(Node) ์์ฑdocument.createElement(tag)์๋ก์ด HTML ์์ ํ๊ทธ๋ฅผ ์์ฑ// 1. ์์ ๋ง๋ค๊ธฐlet div = document.createElement('div');// 2. ๋ง๋ ์์์ ํด๋์ค๋ฅผ 'alert'๋ก ์ค์ div.className = "alert";// 3. ๋ด์ฉ ์ฑ์๋ฃ๊ธฐdiv.innerHTML = "..
2025.09.22 -
DOM ๋ ธ๋์ ๋์ํ๋ ํด๋์ค
๋ชฉ์ฐจ1. DOM ๋ ธ๋ ํด๋์ค2. DOM ๋ ธ๋๋ฅผ ์กฐ์ํ ๋ ์ฌ์ฉํ๋ ์ฃผ์ ํ๋กํผํฐ1. DOM ๋ ธ๋ ํด๋์คDOM ๋ ธ๋๋ ์ข ๋ฅ์ ๋ฐ๋ผ ๊ฐ๊ฐ ๋ค๋ฅธ ํ๋กํผํฐ๋ฅผ ์ง์ํ๋ค.์๋ฅผ ๋ค์ด ํ๊ทธ ์ ๋์ํ๋ ์์ ๋ ธ๋๋ ๋งํฌ์ ๊ด๋ จ๋ ํ๋กํผํฐ๋ฅผ,์ ๋์ํ๋ ์์ ๋ ธ๋๋ ์ ๋ ฅ ๊ด๋ จ ํ๋กํผํฐ๋ฅผ ์ ๊ณตํ๋ค. ๋ํ DOM ๋ ธ๋๋ ์ข ๋ฅ์ ๋ฐ๋ผ ๋์ํ๋ ๋ด์ฅ ํด๋์ค๊ฐ ๋ค๋ฅด๋ค. ๋ชจ๋ ๋ ธ๋๋ค์ ๊ณตํต์ ์ผ๋ก ์์ ๊ฐ์ ์์ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ฏ๋ก, ํด๋์ค ์ญ์ ์์ํ๋ค.๊ฐ ํด๋์ค์ ํน์ง์ ์๋์ ๊ฐ๋ค.EventTarget : ๋ฃจํธ์ ์๋ ์ถ์ ํด๋์ค๋ก, ๋์ ํ๋ ๊ฐ์ฒด๊ฐ ์ค์ ๋ก ๋ง๋ค์ด์ง์ง ์์Node : DOM ๋ ธ๋์ ๋ฒ ์ด์ค ์ญํ ์ ํ๋ ์ถ์ ํด๋์ค๋ก ์ฃผ์ ํธ๋ฆฌ ํ์ ๊ธฐ๋ฅ์ ์ ๊ณตElement : DOM ์์๋ฅผ ์ํ ๋ฒ ์ด์ค ํด๋์ค๋ก, getElemen..
2025.09.22 -
E2 : ์์ ๊ฒ์ํ๊ธฐ
๋ชฉ์ฐจ1. ์์์ ๊ฒ์2. document.getElementById3. querySelectorAll, querySelector5. matches();6. closest1. ์์์ ๊ฒ์์์๋ค์ด ๊ฐ๊น์ด ๋ถ์ด์์ง ์๋ค๋ฉด, ์๋ ์์น๋ก ์์ ๋ ธ๋์ ์ ๊ทผํ ์ ์๋ค.์ด๋ด ๊ฒฝ์ฐ, id๋ฅผ ๊ฒ์ํด์ ์ํ๋ ์์์ ์ ๊ทผํ ์ ์๋ค.2. id๋ก ๊ฒ์ํด์ ์์ ๋ค๋ฃจ๊ธฐ์์์ id ์์ฑ์ด ์์ผ๋ฉด document.getElementById(id)๋ฅผ ์ฌ์ฉํด ์ ๊ทผํ ์ ์๋ค. blah blah 3. querySelectorAll, querySelector1. querySelectorAll[element].querySelectorAll(css)๋ ์์ ์์ ์ค ์ฃผ์ด์ง css ์ ํ์์ ๋์ํ๋ ์์๋ฅผ ๋ชจ๋ ๋ฐํํ๋ค. 1-1 1..
2025.09.08 -
E1 : JS๋ก DOM ๊ฐ์ฒด ํ์ํ๊ธฐ
๋ชฉ์ฐจ1. DOM ํ์2. ์์ ๋ ธ๋ ํ์3. 001. DOM ํ์DOM์ ๋ชจ๋ ์ฐ์ฐ์ document ๊ฐ์ฒด๋ก๋ถํฐ ์์ํ๋ค.document ๊ฐ์ฒด๋ DOM์ ์ ๊ทผํ๊ธฐ ์ํ ์ง์ ์ ์ธ ์ ์ด๋ค.https://ldd6cr-adness.tistory.com/279 ๋ฐ๋ผ์ JS๋ก HTML ๋ฌธ์์ ์ ๊ทผํ ๋๋ document๋ฅผ ํตํด ์ ๊ทผํ๋ค.html, body, head ํ๊ทธ์ ์ ๊ทผํ ์ ์๋ ์์ฑ๋ค์ ๊ฐ๊ฐ ์๋์ ๊ฐ๋ค. : document.documentElement : document.body ์ ์์์์ ๋ด๋ถ์์ document.body๋ฅผ ์ ๊ทผ ์๋ํ๋ฉด null์ ์ป๋๋ค.์์ง ์ฝ์ง ์์๊ธฐ ๋๋ฌธ์ ์กด์ฌํ์ง ์์์ ๋ปํ๋ null์ ์ถ๋ ฅํ๋ ๊ฒ์ด๋ค. 2. ์์ ๋ ธ๋ ํ์์์ ๋ ธ๋ (child node ..
2025.09.07 -
B23 : iterable ๊ฐ์ฒด
๋ชฉ์ฐจ1. iterable ๊ฐ์ฒด 1-1. iterable ๊ฐ์ฒด์ ๊ฐ๋ 1-2. iterable ๊ฐ๋ ์ดํดํด๋ณด๊ธฐ2. ๋ด์ฅ ์ดํฐ๋ฌ๋ธ3. Array.from์ผ๋ก Array ๋ง๋ค๊ธฐ1. iterable ๊ฐ์ฒด1. iterable ๊ฐ์ฒด์ ๊ฐ๋ iterable ๊ฐ์ฒด๋ ๋ฐฐ์ด์ ์ผ๋ฐํํ ๊ฐ์ฒด์ด๋ค.๋ฐ๋ณตํ ์ ์๋ ๊ตฌ์กฐ์ ๊ฐ์ฒด์ด๋ค.๋ํ์ ์ผ๋ก ๋ฐฐ์ด, ์ ์ฌ๋ฐฐ์ด, ๋ฌธ์์ด, map, set ๋ฑ์ด ์๋ค.์ดํฐ๋ ์ด์ (Symbol.iterator)ํจ์๋ฅผ ๊ฐ์ ธ์ผํ๋ค.for..of ๋ฌธ๋ฒ์ ์ ์ฉํ์ฌ ์ํ๋ฅผ ํ ์ ์๋ค.2. iterable ๊ฐ๋ ์ดํดํด๋ณด๊ธฐ์ฐ์ ์ดํฐ๋ฌ๋ธ์ด๋ผ๋ ๊ฐ๋ ์ ๋ํด ์ดํดํ ํ์๊ฐ ์๋ค.let range = { from: 1, to: 5,};๊ฐ์ฒด range๋ 1๋ถํฐ 5๊น์ง์ ๊ฐ๊ฒฉ์ ๋ํ๋ธ๋ค.์ฌ๊ธฐ์ Symbol.itera..
2025.08.29 -
์ต์ ๋ ์ฒด์ด๋ ?.
๋ชฉ์ฐจ1. ์ต์ ๋ ์ฒด์ด๋ ๋ฑ์ฅ ๋ฐฐ๊ฒฝ2. ์ต์ ๋ ์ฒด์ด๋ ?.3. ?.() ?.[] 3-1. ๊ฐ์ฒด ๋ด ํจ์์ ์กด์ฌ ์ฌ๋ถ ํ์ธ 3-2. ๊ฐ์ฒด ๋ด ํ๋กํผํฐ์ ์กด์ฌ ์ฌ๋ถ ํ์ธ 1. ์ต์ ๋ ์ฒด์ด๋ ๋ฑ์ฅ ๋ฐฐ๊ฒฝ์ฌ์ฉ์ ์ค ์ด๋ค ์ฌ๋๋ค์ ์ฃผ์๋ฅผ ๋ฑ๋กํ๊ณ ์ถ์ง ์์ ์๋ ์๋ค.์ฃผ์๋ฅผ ๋ฑ๋กํ์ง ์์ null์ธ ์ํ๋ก ๋จ๊ฒจ๋๋ฉด, ์ฃผ์ ์ ๋ณด์ ์ ๊ทผํ์ ๋ ์๋ฌ๊ฐ ๋ฐ์ํ ์ ์๋ค.let bang = {};console.log(bang.address.street); // TypeError: Cannot read property 'address' of undefined ?. ์ด ์ถ๊ฐ๋๊ธฐ ์ด์ ์๋ && ์ฐ์ฐ์๋ฅผ ํ์ฉํ์๋ค.let bang = {};console.log(bang && bang.address); // undef..
2025.08.29
GitHub