๐Window ๊ฐ์ฒด
window ๊ฐ์ฒด๋ ๋ธ๋ผ์ฐ์ ์ฐฝ์ ๋๋ณํ๋ฉด์ ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ต์๋จ์ ์กด์ฌํ๋ ๊ฐ์ฒด์ ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋ ์ด๋ ๊ณณ์์๋ ํญ์ ์ ๊ทผํ ์ ์๊ธฐ ๋๋ฌธ์ ์ ์ญ ๊ฐ์ฒด [ Global Object] ๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
์ด๋ค ํ๋กํผํฐ๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒฐ๊ตญ ์ ์ญ ๊ฐ์ฒด ๋ด๋ถ์ ๊ฒ ์ด๊ธฐ ๋๋ฌธ์ window.์ ์๋ตํ๊ณ ์ฌ์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค!
๐คทโ๏ธDOM ์ด๋?
DOM ์ Document Object Model ์ ์ฝ์๋ก์ '๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ' ์ด๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
์น ํ์ด์ง์ ๋ํ๋๋ HTML ๋ฌธ์ ์ ์ฒด๋ฅผ ๊ฐ์ฒด๋ก ํํํ ๊ฒ ์ผ๋ก ์๊ฐํ๋ฉด ๋ฉ๋๋ค.
์ด๋, ๊ฐ ๊ฐ์ฒด๋ฅผ ๋ ธํธ [ Node ] ๋ผ๋ ์ฉ์ด๋ก ํํํ๊ณ , ํ๊ทธ๋ ์์ ๋ ธ๋, ๋ฌธ์๋ ํ ์คํธ ๋ ธ๋๋ก ๊ตฌ๋ถ๋ฉ๋๋ค.
๐๏ธ DOM ํธ๋ฆฌ
HTML์ ๊ณ์ธต ๊ตฌ์กฐ๋ DOM์์๋ ๋ฐ์๋๋๋ฐ ์ด๋ฌํ ๊ณ์ธต๊ตฌ์กฐ๋ฅผ ๋๋ฌด์ ๋น์ ํ์ฌ DOM Tree ๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
๊ฐ ๋ ธ๋ ๊ฐ์ ๊ด๊ณ๋ ๋ถ๋ชจ, ์์, ํ์ ๋ผ๋ ์ฉ์ด๋ก ํํํฉ๋๋ค.
๐DOM ์ด๋ ์ ํ์ฉ ๊ฐ๋ฅํ ํ๋กํผํฐ
Property | ์ ํ | ๊ฒฐ๊ณผ |
---|---|---|
element.children | ์์ ์์ ๋ ธ๋ | element์ ์์ ์์ ๋ชจ์(HTMLCollection) |
element.firstElementChild | ์์ ์์ ๋ ธ๋ | element์ ์ฒซ ๋ฒ์งธ ์์ ์์ ํ๋ |
element.lastElementChild | ์์ ์์ ๋ ธ๋ | element์ ๋ง์ง๋ง ์์ ์์ ํ๋ |
element.parentElement | ์์ ์์ ๋ ธ๋ | element์ ๋ถ๋ชจ ์์ ํ๋ |
element.previousElementSibling | ํ์ ์์ ๋ ธ๋ | element์ ์ด์ (previous) ํน์ ์ข์ธก(left)์ ์๋ ์์ ํ๋ |
element.nextElementSibling | ํ์ ์์ ๋ ธ๋ | element์ ๋ค์(next) ํน์ ์ฐ์ธก(right)์ ์๋ ์์ ํ๋ |
node.childNodes | ์์ ๋ ธ๋ | node์ ์์ ๋ ธ๋ ๋ชจ์(NodeList) |
node.firstChild | ์์ ๋ ธ๋ | node์ ์ฒซ ๋ฒ์งธ ์์ ๋ ธ๋ ํ๋ |
node.lastChild | ์์ ๋ ธ๋ | node์ ๋ง์ง๋ง ์์ ๋ ธ๋ ํ๋ |
node.parentNode | ๋ถ๋ชจ ๋ ธ๋ | node์ ๋ถ๋ชจ ์์ ํ๋ |
node.previousSibling | ํ์ ๋ ธ๋ | node์ ์ด์ (previous) ํน์ ์ข์ธก(left)์ ์๋ ๋ ธ๋ ํ๋ |
node.nextSibling | ํ์ ๋ ธ๋ | node์ ๋ค์(next) ํน์ ์ฐ์ธก(right)์ ์๋ ๋ ธ๋ ํ๋ |
๐ ์ฃผ์ ์์ ๋ ธ๋ ํ๋กํผํฐ
Property | ๋ด์ฉ | ์ฐธ๊ณ ์ฌํญ |
---|---|---|
element.innerHTML | ์์ ๋ ธ๋ ๋ด๋ถ์ HTML์ฝ๋ ๋ฌธ์์ด๋ก ๋ฆฌํด | ์์ ์์ ์ ๋ณด๋ฅผ ํ์ธํ ์๋ ์์ง๋ง,๋ด๋ถ์ HTML ์์ฒด๋ฅผ ์์ ํ ๋ ์ข ๋ ์์ฃผ ํ์ฉ |
element.outerHTML | ์์ ๋ ธ๋ ์์ฒด์ ์ ์ฒด์ ์ธ HTML ์ฝ๋๋ฅผ ๋ฌธ์์ด๋ก ๋ฆฌํด | outerHTML์ ์๋ก์ด ๊ฐ์ ํ ๋นํ๋ฉด ์์ ์์ฒด๊ฐ ๊ต์ฒด๋์ด ๋ฒ๋ฆฌ๊ธฐ ๋๋ฌธ์ ์ฃผ์ |
element.textContent | ์์ ๋ ธ๋ ๋ด๋ถ์ ๋ด์ฉ๋ค ์ค์์ HTML์ ์ ์ธํ๊ณ ํ ์คํธ๋ง ๋ฆฌํด | textContent๋ ๋ง๊ทธ๋๋ก ํ ์คํธ๋ง ๋ค๋ฃจ๊ธฐ ๋๋ฌธ์ HTMLํ๊ทธ๋ฅผ ์ฐ๋๋ผ๋ ๋ชจ๋ ํ ์คํธ๋ก ์ฒ๋ฆฌ๋จ |
์์ ๋ ธ๋ ๋ค๋ฃจ๊ธฐ
- ์์ ๋ ธ๋ ๋ง๋ค๊ธฐ :
document.createElement('ํ๊ทธ์ด๋ฆ')
- ์์ ๋ ธ๋ ๊พธ๋ฏธ๊ธฐ :
element.textContent
,element.innerHTML
,element.innerText
- ์์ ๋ ธ๋ ์ถ๊ฐ ํน์ ์ด๋ํ๊ธฐ :
element.prepend
,element.append
,element.after
,element.before
- ์์ ๋ ธ๋ ์ญ์ ํ๊ธฐ :
element.remove()
HTML ์์ฑ ๋ค๋ฃจ๊ธฐ
๋๋ถ๋ถ์ HTML ์์ฑ์ DOM ๊ฐ์ฒด์ ํ๋กํผํฐ๋ก ๋ณํ์ด ๊ฐ๋ฅํ์ง๋ง, ํ์ค ์์ฑ์ด ์๋ ๊ฒฝ์ฐ์๋ ํ๋กํผํฐ๋ก ๋ณํ์ด ์๋๋ค.
์ด๋ ์๋์ ๋ฉ์๋๋ฅผ ํ์ฉํ๋ฉด ํ์ค์ด ์๋ HTML ์์ฑ๋ ๋ค๋ฃฐ ์ ์๊ฒ ๋๋ค!
- ์์ฑ์ ์ ๊ทผํ๊ธฐ :
element.getAttribute('์์ฑ')
- ์์ฑ ์ถ๊ฐ(์์ ) ํ๊ธฐ :
element.setAttribute('์์ฑ', '๊ฐ')
- ์์ฑ ์ ๊ฑฐํ๊ธฐ :
element.removeAttribute('์์ฑ')
์คํ์ผ ๋ค๋ฃจ๊ธฐ
- style ํ๋กํผํฐ ํ์ฉํ๊ธฐ :
element.style.styleName = 'value';
- class ๋ณ๊ฒฝ์ ํตํด ๊ฐ์ ์ ์ผ๋ก ์คํ์ผ ์ ์ฉํ๊ธฐ :
element.className, element.classList
๋ฉ์๋ | ๋ด์ฉ | ์ฐธ๊ณ ์ฌํญ |
---|---|---|
classList.add | ํด๋์ค ์ถ๊ฐํ๊ธฐ | ์ฌ๋ฌ ๊ฐ์ ๊ฐ์ ์ ๋ฌํ๋ฉด ์ฌ๋ฌ ํด๋์ค ์ถ๊ฐ ๊ฐ๋ฅ |
classList.remove | ํด๋์ค ์ญ์ ํ๊ธฐ | ์ฌ๋ฌ ๊ฐ์ ๊ฐ์ ์ ๋ฌํ๋ฉด ์ฌ๋ฌ ํด๋์ค ์ญ์ ๊ฐ๋ฅ |
classList.toggle | ํด๋์ค ์์ผ๋ฉด ์ถ๊ฐ, ์์ผ๋ฉด ์ญ์ ํ๊ธฐ | ํ๋์ ๊ฐ๋ง ์ ์ฉ ๊ฐ๋ฅํ๊ณ , ๋ ๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ก ์ถ๊ฐ ๋๋ ์ญ์ ๊ธฐ๋ฅ์ ๊ฐ์ ํ ์ ์์ |
ํ๋กํผํฐ์ ๋ฉ์๋์ ์ฐจ์ด๋?
JavaScript ์์ Method ๋ ํจ์๋ก ๋ Property ์ด๋ค.
๋ผ๊ณ ํ์ง๋ง ์ ๊ธ๋ง ๋ณด๊ณ ์๋ ํ์คํ๊ฒ ์ด๋ค๊ฑธ Property๋ผ ํ๋์ง, Method๋ผ ํ๋์ง ๊ตฌ๋ถํ๊ธฐ ์ด๋ ค์์ ์ฐพ์๋ณด์์ต๋๋ค!
๊ตฌ๋ถํ๋ ๋ฐฉ๋ฒ์ ๋๊ฐ์ง๊ฐ ์์ต๋๋ค.
- ์๋ฏธ๋ก ๊ตฌ๋ถํ๊ธฐ
- ์ฌ์ฉ๋ฐฉ๋ฒ์ผ๋ก ๊ตฌ๋ถํ๊ธฐ
์๋ฏธ๋ก ๊ตฌ๋ถํ๊ธฐ๋ Property๊ฐ ์์ฑ ์ด๋ผ๋ฉด, Method๋ ํ๋ ์ผ๋ก ๊ตฌ๋ถํ๋ ๊ฒ ์
๋๋ค.
์ฆ listA๋ผ๋ array๊ฐ ์์ ๋, listA.length
๋ property์ด๊ณ , listA.push(1)
์ Method์ธ ๊ฒ ์
๋๋ค.
์ฌ์ฉ๋ฒ์ผ๋ก ๊ตฌ๋ถํ๊ธฐ๋ Method๋ ํจ์๋ก ๋ Property๋ผ ํ์์ผ๋ฏ๋ก, ํจ์์ ๊ฐ์ฅ ํฐ ํน์ง์ธ callable (ํธ์ถํ ์ ์๋)์ ์ฌ์ฉํ์ฌ JavaScript์์ ๊ดํธ๋ก ํจ์๋ฅผ ํธ์ถํ๋ฏ๋ก ๊ดํธ๋ก ๋๋๋ฉด Method, ๊ดํธ๊ฐ ์์ผ๋ฉด Property๋ก ๊ตฌ๋ถํ ์ ์์ต๋๋ค.
'Study > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ Node.js ] readFile, readFileSync ํจ์ ์์๋ณด๊ธฐ (0) | 2022.02.20 |
---|---|
[ JS ] Event ์ ๋ฆฌ (0) | 2022.02.08 |
[ JS ] JS์ TDZ๋ ๋ฌด์์ผ๊น? (0) | 2022.02.08 |
[ JS ] ์ผ๋ฐ ํจ์์ ์ต๋ช ํจ์์ ์ฐจ์ด์ ๋ํด ์์๋ณด์! (0) | 2022.02.08 |
[JS] value, textContent, innerHTML, innerText ๋ ์ด๋ป๊ฒ ๋ค๋ฅผ๊น? (0) | 2022.02.08 |