๐window.document๋?
ํ์ฌ ๋ธ๋ผ์ฐ์ ์ ๋ ๋๋ง ๋๊ณ ์๋ ๋ฌธ์๋ฅผ ์๋ฏธ ํ๋ค.
ํด๋น ์์ฑ์ ์ด์ฉํ๋ฉด ํด๋น ๋ฌธ์์ ์ ๊ทผ ๊ฐ๋ฅ
(DOM์ ๋ํ ์ง์ ์ ์ญํ ์ ํ๋ ํ๋ก๊ทธ๋๋ฐ ์ธํฐํ์ด์ค, ์ฌ์ฉํ์ฌ ํ์ด์ง์ ์ ๋ณด ๋๋ ์น ์์๋ฅผ ์์ฑ ๋ฐ ์กฐ์ ๊ฐ๋ฅ)
๐์์๋ฅผ ์ ํํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋ํ์ ๋ฉ์๋
๐document.getElementById : id๋ฅผ ์ธ์๋ก ์ ๋ฌ ๋ฐ๊ณ , ์ ๋ฌ ๋ฐ์ ์ ํ์์ ์ผ์นํ๋ ๋ฌธ์๋ด ์์๋ฅผ ๋ฐํ ํ๋ค.
๐document.querySelector : ์ ํ์๋ฅผ ์ธ์๋ก ์ ๋ฌ ๋ฐ์, ์ ๋ฌ ๋ฐ์ ์ ํ์์ ์ผ์นํ๋ ๋ฌธ์ ๋ด ์ฒซ ๋ฒ์งธ ์์๋ฅผ ๋ฐํํ๋ค.
๐textContent : ํด๋น ๋ ธ๋๊ฐ ํฌํจํ๊ณ ์๋ ์ฝํ ์ธ ๋ฅผ ํํ ํ๋ ์์ฑ
(ํด๋น text๋ฅผ ์ฝ๊ณ ๋ณ๊ฒฝ ๊ฐ๋ฅ)
๐ํจ์ ๋ง๋๋ ๋ฐฉ๋ฒ
1.ํจ์ ์ ์ธ์
function name(){
}
2.ํจ์ ํํ์
const name = function(){
}
๐๊ฐ๋จ ์ฉ์ด
๋งค๊ฐ๋ณ์ : ์๋ฃ๋ฅผ ์ ๋ฌ ๋ฐ๊ธฐ ์ํด ๋ง๋ค์ด ๋์ ๋ณ์(parameter)
๋ฐ์ดํฐ ์ธ์ : ์ค์ ํจ์๋ฅผ ํธ์ถ์์ ์ ๋ฌํ๋ ๋ฐ์ดํฐ(argument)
๐์ด๋ฒคํธ(event)๋?
์ฌ์ฉ์ค์ด๊ฑฐ๋ ํ๋ก๊ทธ๋๋ฐ ์ค์ธ ์์คํ ๋ด์์ ์ผ์ด๋๋ ์ฌ๊ฑด
ex.
์นํ์ด์ง ์์ ์ฌ์ฉ์๊ฐ ๋ฒํผ์ ํด๋ฆญ -> ํด๋ฆญ ์ด๋ฒคํธ
์นํ์ด์ง ์์ ์ฌ์ฉ์๊ฐ ํค๋ณด๋๋ฅผ ๋๋ ๋ค -> ํค๋ค์ด ์ด๋ฒคํธ
์จํ์ด์ง ์ฌ์ฉ์๊ฐ ์ ๋ ฅํผ์ ๋ด์ฉ์ ์ ์ถ ํ๋ค -> ์ ์ถ ์ด๋ฒคํธ
...
์ด๋ฌํ ์ด๋ฒคํธ๋ค์ ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ๊ฐ์ ์ ์๋ค.
๐ํธ๋ค๋ฌ(handler)๋?
์ด๋ฒคํธ๊ฐ ๋ฐ์ ๋๋ฉด ์คํ๋ ์ฝ๋ ๋ธ๋ก์ ์๋ฏธ
์ฃผ๋ก ํจ์๊ฐ ์ด ์ญํ ์ ๋ด๋น ํ๋ค.
๐์ด๋ฒคํธ ํธ๋ค๋ฌ ๋ฑ๋ก : ์ด๋ฒคํธ ํธ๋ค๋ฌ ์ญํ ์ ์ํํ ์ผ์๋ฅผ ์ ์ ํ๋ ๊ฒ
๋ฐฉ๋ฒ
๐addEventListener : onclick, onkeydown๊ณผ ๊ฐ์ ์ด๋ฒคํธ ์์ฑ์ ํตํด ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ๋ฑ๋กํ๋ ๊ฒ ๋ณด๋ค๋ addEventListener ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค!!
ex. target.addEventListener('click', function(){})
์ฅ์
1.์ด์ ์ ์ถ๊ฐํ ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ์ ๊ฑฐํ ์ ์๋ ๋์ ๋ฉ์๋ ์กด์ฌ
2.๊ฐ์ ๋ฆฌ์ค๋(ํ๊ฒ)์ ๋ํด ๋ค์์ ํธ๋ค๋ฌ ๋ฑ๋ก ๊ฐ๋ฅ
3.์ถ๊ฐ์ ์ธ ์ต์ ์ฌํญ ์ ๊ณต
๐์ด๋ฒคํธ ๊ฐ์ฒด : ์ถ๊ฐ์ ์ธ ๊ธฐ๋ฅ๊ณผ ์ ๋ณด๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ์ด๋ฒคํธ ํธ๋ค๋ฌ์ ์๋์ผ๋ก ์ ๋ฌ๋๋ ๋ฐ์ดํฐ
ex.
target.addEventListener('click', function(){})
-->click์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด ํจ์๋ฅผ ํธ์ถ ํ๋คtarget.addEventListener('click', function(event){})
-->์๋์ผ๋ก ์ ๋ฌ๋๋ ์ด๋ฒคํธ ๊ฐ์ฒด๋ฅผ ๋งค๊ฐ๋ณ์ event์ ๋์ ํ๋ค.
๐์์๋ฅผ ์ถ๊ฐ ํ๋ ๋ฐฉ๋ฒ
๐appendChild : DOM๋ด ๊ฐ๋ณ ์์(๋ ธ๋)์ ์์ ์์๋ฅผ ์ถ๊ฐํ ๋ ๋ฐ๋์ ์ฌ์ฉ ๋๋ ๋ฉ์๋
์ฌ์ฉ๋ฒ : target.appendChild(์์์ผ๋ก ์ถ๊ฐํ ์์)
ex.
const p = document.createElement("p")
document.body.appendChild(p)
๐appendChild vs append
๊ณตํต : ํ๊ฒ ์์์ ์์ ์์๋ฅผ ์ถ๊ฐ
appendChild : ์ถ๊ฐํ ์์ ๋ ธ๋๋ฅผ ๋ฐํ ํ๋ค, ๋ ธ๋ ๊ฐ์ฒด๋ง ์ถ๊ฐ ๊ฐ๋ฅ
append : ๋ฐํ ๋ฐ์ดํฐ๊ฐ ์๋ค, ์์์ ๋ ธ๋ ๊ฐ์ฒด ์ชผ๋ ๋ฌธ์์ด์ ์์ ์์์ ์ถ๊ฐ ๊ฐ๋ฅ
๐์ ๋ ฅ ์์๊ฐ ์ฝ๊ธฐ
target.value : ๋์ ์์์ ์ฌ์ฉ์ ์ ๋ ฅ๊ฐ์ ์ฝ๋๋ค.
๐์ผํญ ์ฐ์ฐ์
ํํ : ์กฐ๊ฑด์ ? ์ฐธ์ผ๊ฒฝ์ฐ์ ๊ฒฐ๊ณผ : ๊ฑฐ์ง์ผ ๊ฒฝ์ฐ์ ๊ฒฐ๊ณผ ์คํ
๐๊ธฐ๋ณธ์์ฑ์(๋ด์ฅ ์์ฑ์๋ก ๋นํธ์ธ ๊ฐ์ฒด๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค)
ex.
const now = new Date() => ์ฝ๋๊ฐ ์คํ๋๋ ์์ ์ ๋ ์ง์ ์๊ฐ ์ ๋ณด ํํ
const then = new Date(2009,2,3) ==> ํด๋น ๋ ์ง์ ์ ๋ณด๋ฅผ ๋ด์ ๊ฐ์ฒด
const interval = now - then ==> Date๊ฐ์ฒด ๋ผ๋ฆฌ๋ ๋ฐ๋ฆฌ์ด ๋จ์๋ก ๊ณ์ฐ ๊ฐ๋ฅ
โณํ์ด๋จธ ๋ง๋ค๊ธฐ
๐setTimeout : ์ ํด์ง ์๊ฐ์ด ์ง๋๋ฉด ์ฃผ์ด์ง ํจ์๋ฅผ ์คํ ํด์ฃผ๋ ํ์ด๋จธ ๋ฉ์๋
์ฌ์ฉ๋ฒ : setTimeout(์คํํ ํจ์, ms๋จ์ ์๊ฐ)
ex.
setTimeout(function(){
console.log("test")
},1000)
==>1000ms์ง๋๋ฉด ํจ์๋ฅผ ์คํ
๐setInterval : ์ผ์ ํ ์๊ฐ ๊ฐ๊ฒฉ์ ๋ฐ๋ผ ํจ์๋ฅผ ๋ฐ๋ณต ์คํ ํด์ฃผ๋ ๋ฉ์๋
์ฌ์ฉ๋ฒ : setInterval(๋ฐ๋ณต์คํํ ํจ์, ms๋จ์์ ์๊ฐ)
ex.
setInterval(function(){
console.log("test")
},500)
==>500ms ๋ง๋ค ํจ์๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ์คํ ํ๋ค.
๐clearInterval : setInterval๋ฉ์๋๊ฐ ํธ์ถ ๋์ด ๋ฐ๋ณต ์คํํ ํจ์ ํ์ด๋จธ๋ฅผ ๋ฑ๋กํ๋ฉด, 0์ด ์๋ ์ซ์๋ฅผ ๋ฐํ
(์ซ์๋ ํ์ด๋จธ์ id๋ฅผ ์๋ฏธ)
์ด๋ฅผ clearInterval๋ฉ์๋์ ์ ๋ฌ ํ๋ฉด ํ์ด๋จธ์ ๋ฐ๋ณต ์คํ์ด ์ทจ์ ๋๋ค
ex.
let timer;
timer = setInterval(function(){
console.log("test");
},500)
==>์
ํ
๋ ํ์ด๋ฒ์ ๋ฐํ๊ฐ(id)๋ฅผ ๋ณ์์ ์ ์ฅ
clearInterval(timer) ==>์
ํ
๋ ํ์ด๋จธ๋ฅผ ๋ฉ์ถ์ด๋ผ