js的setTimeout方法用處比較多背零,通常用在頁(yè)面刷新了、延遲執(zhí)行了等等无埃。但是很多javascript新手對(duì)setTimeout的用法還是不是很了解徙瓶。雖然我學(xué)習(xí)和應(yīng)用javascript已經(jīng)兩年多了,但是對(duì)setTimeout方法嫉称,有時(shí)候也要查閱資料侦镇。今天對(duì)js的setTimeout方法做一個(gè)系統(tǒng)地總結(jié)。
setInterval與setTimeout的區(qū)別
說(shuō)道setTimeout织阅,很容易就會(huì)想到setInterval虽缕,因?yàn)檫@兩個(gè)用法差不多,但是又有區(qū)別蒲稳,今天一起總結(jié)了吧氮趋!
setTimeout
定義和用法:setTimeout()方法用于在指定的毫秒數(shù)后調(diào)用函數(shù)或計(jì)算表達(dá)式。
語(yǔ)法:setTimeout(code,millisec)
參數(shù):code (必需):要調(diào)用的函數(shù)后要執(zhí)行的 JavaScript 代碼串江耀。millisec(必需):在執(zhí)行代碼前需等待的毫秒數(shù)剩胁。提示:setTimeout() 只執(zhí)行 code 一次。如果要多次調(diào)用祥国,請(qǐng)使用 setInterval() 或者讓 code 自身再次調(diào)用 setTimeout()昵观。
setInterval
setInterval() 方法可按照指定的周期(以毫秒計(jì))來(lái)調(diào)用函數(shù)或計(jì)算表達(dá)式。
setInterval() 方法會(huì)不停地調(diào)用函數(shù)舌稀,直到 clearInterval() 被調(diào)用或窗口被關(guān)閉啊犬。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的參數(shù)。
語(yǔ)法:setInterval(code,millisec[,"lang"])
參數(shù):code 必需壁查。要調(diào)用的函數(shù)或要執(zhí)行的代碼串觉至。millisec 必須。周期性執(zhí)行或調(diào)用 code 之間的時(shí)間間隔睡腿,以毫秒計(jì)语御。
返回值:一個(gè)可以傳遞給 Window.clearInterval() 從而取消對(duì) code 的周期性執(zhí)行的值。
區(qū)別------->通過(guò)上面可以看出席怪,setTimeout和setinterval的最主要區(qū)別是:
setTimeout只運(yùn)行一次应闯,也就是說(shuō)設(shè)定的時(shí)間到后就觸發(fā)運(yùn)行指定代碼,運(yùn)行完后即結(jié)束挂捻。如果運(yùn)行的代碼中再次運(yùn)行同樣的setTimeout命令碉纺,則可循環(huán)運(yùn)行。(即 要循環(huán)運(yùn)行,需函數(shù)自身再次調(diào)用 setTimeout())
而 setinterval是循環(huán)運(yùn)行的骨田,即每到設(shè)定時(shí)間間隔就觸發(fā)指定代碼唬涧。這是真正的定時(shí)器。
setinterval使用簡(jiǎn)單盛撑,而setTimeout則比較靈活碎节,可以隨時(shí)退出循環(huán),而且可以設(shè)置為按不固定的時(shí)間間隔來(lái)運(yùn)行抵卫,比如第一次1秒狮荔,第二次2秒,第三次3秒介粘。
我個(gè)人而言殖氏,更喜歡用setTimeout多一些!