์ฐ์ ๊ธฐ๋ก ๐ช
[JavaScript] ํจ์ ์ ๋ฆฌ 2 - ํ์ด๋จธํจ์, ์ฝ๋ฐฑ(Callback) ํจ์,๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฐฉ์ ๋ณธ๋ฌธ
WEB/HTML+CSS+JS
[JavaScript] ํจ์ ์ ๋ฆฌ 2 - ํ์ด๋จธํจ์, ์ฝ๋ฐฑ(Callback) ํจ์,๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฐฉ์
kite707 2021. 7. 8. 00:52ํ์ด๋จธ ํจ์
- setTimeout(ํจ์,์๊ฐ) : ์ผ์ ์๊ฐ ํ ํจ์ ์คํ
- setInterval(ํจ์,์๊ฐ) : ์๊ฐ ๊ฐ๊ฒฉ๋ง๋ค ํจ์ ์คํ
- clearTimeout() : ์ค์ ๋ Timeout ํจ์๋ฅผ ์ข ๋ฃ
- clearInterval() : ์ค์ ๋ Intervalํจ์๋ฅผ ์ข ๋ฃ
//setTimeout, clearTimeout ์ฌ์ฉ ์์
const timer = setTimeout(() => {console.log("HI!")},3000)
const h1El=document.querySelector('h1')
h1El.addEventListener('click', () => {
clearTimeout(timer)
})
//setInterval, clearInterval ์ฌ์ฉ ์์
const interval=setInterval(() => {console.log("์๋
")},1000)
const h2El=document.querySelector('h2')
h2El.addEventListener('click',() => {
clearInterval(interval)
})
์ฝ๋ฐฑ(Callback)
์ฝ๋ฐฑ : ํจ์์ ์ธ์๋ก ์ฌ์ฉ๋๋ ํจ์
์๋ฅผ๋ค์ด setInterval(ํจ์, ์๊ฐ) ์์ 'ํจ์'๋ฅผ ์ฝ๋ฐฑ์ด๋ผ๊ณ ํ๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์ ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฐฉ์ ๋ฌธ์ ์ ์ ํด๊ฒฐํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
๋น๋๊ธฐ ๋ฐฉ์ : ํน์ ์ฝ๋์ ์ฐ์ฐ์ด ๋๋ ๋๊น์ง ์ฝ๋์ ์คํ์ ๋ฉ์ถ์ง ์๊ณ ๋ค์ ์ฝ๋๋ฅผ ๋จผ์ ์คํํ๋ ํน์ฑ
์๋ ์์ ๋ฅผ ํตํด ์ฝ๊ฒ ์ดํดํ ์ ์๋ค.
//์๋๋ ์ฝ์์ฐฝ์ 3์ด๋ค kite๋ฅผ ์ถ๋ ฅํ ๋ค, Done!์ ์ถ๋ ฅํ๋ ๊ฒ์ด๋ค.
function timeout(){
setTimeout(() => {
console.log('kite!')
},3000)
}
function printer(){
console.log('Done!')
}
timeout();
printer();
๊ทธ๋ฌ๋ ์ค์ ์คํ๊ฒฐ๊ณผ๋ ์๋์ ๊ฐ๋ค. Done!์ด ๋จผ์ ์ถ๋ ฅ๋๊ณ ์ดํ kite๊ฐ ์ถ๋ ฅ๋๋ค. ์ฆ timeout()ํจ์์ ์คํ์ด ์๋ฃ๋๊ธฐ ์ ์ printer()ํจ์๊ฐ ์คํ๋๋ ๊ฒ์ด๋ค. ์ด๋ฌํ ๋ฌธ์ ์ ์ ํด๊ฒฐํ๊ธฐ ์ํด ์ฝ๋ฐฑํจ์๋ฅผ ์ฌ์ฉํ๋ค.
์๋์ ๊ฐ์ด ์ฌ์ฉํ ์ ์๋ค.
function timeout(cb){
setTimeout(() => {
console.log('kite!')
cb()
},3000)
}
timeout(() => {
console.log('Done!')
})
'WEB > HTML+CSS+JS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript] ํจ์ ์ ๋ฆฌ 1-ํ์ดํํจ์, ์ฆ์ ์คํํจ์(IIFE), ํธ์ด์คํ (Hoisting) (0) | 2021.07.08 |
---|---|
[JavaScript] document.write()ํจ์ ์์น (0) | 2021.04.09 |
[CSS] ์์, ํ์ ์ ํ์ ์ฐจ์ด์ (0) | 2021.03.24 |
[HTML+CSS+JavaScript]ํ์ดํ ํจ๊ณผ ๋๋ฉ ํ์ด์ง ๋ง๋ค๊ธฐ (0) | 2021.01.13 |
๋ฐ๋๋ผ ์คํฌ๋ฆฝํธ - part 3์ ๋ฆฌ (0) | 2021.01.04 |