setInterval()與setTimeout()區別
首先強調一點,這兩個方法之間的區別是非常明顯的。
如果說對兩者之間的差別還有所疑惑的話,只能說兩個方法本身的用法還沒有完全搞清楚。
相關閱讀:
(1).JavaScript setInterval()一章節。
(2).JavaScript setTimeout()一章節。
下面本文再來介紹一下它們兩者的區別,希望對初學者能夠帶來比較好的助益。
一.名稱的區別:
這不是廢話嗎,不同方法的名字自然有區別。
其實沒有這麼簡單,程式語言中,概念或者方法等命名都是與其功能相關聯的。
比如作用域,一看就知道它是規定某些東西的作用範圍的,replace方法自然是具有替代功能。
標題中的方法也不能免俗,從它們的名字就可以區分出它們的作用。
(1).setInterval是set+Interval的合成詞。
(2).setTimeout是set+Timeout的合成詞。
set具有設定設定的意思。
(1).Interval具有間隔和區間的意思,在這裡我們就可以大體推測,setInterval方法與設定時間間隔有關。
(2).Timeout具有延遲或者延時的意思,那麼很自然的推測,setTimeout方法與設定時間延遲有關。
二.方法的區別:
由前面的分析,我們已經大致得出兩者的區別,下面直接給出結論:
(1).setInterval用來規定以指定的時間間隔重複執行指定程式碼,預設可以執行無數次。
(2).setTimeout用來規定延遲指定時間後執行指定程式碼,預設只會執行一次。
三.程式碼例項:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script> window.onload=function(){ let odiv=document.getElementById("ant"); let num=0; setInterval(function(){ num=num+1; odiv.innerHTML=num; },1000) } </script> </head> <body> <div id="ant">0</div> </body> </html>
上面的規定每隔1000毫秒執行一次匿名函式,數字會不斷得到累加,並同時寫入div。
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script> window.onload=function(){ let odiv=document.getElementById("ant"); let num=0; setTimeout(function(){ num=num+1; odiv.innerHTML=num; },1000) } </script> </head> <body> <div id="ant">0</div> </body> </html>
上面的程式碼數字只會增加一,因為setTimeout方法只是延遲1000好秒後執行一次匿名函式。
其實使用setTimeout方法也可以實現setInterval方法實現的數字累加效果。
程式碼修改如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script> window.onload=function(){ let odiv=document.getElementById("ant"); let num=0; function timedCount() { num++; odiv.innerHTML=num; timer=setTimeout(function(){ timedCount() }, 1000); } timedCount(); } </script> </head> <body> <div id="ant"></div> </body> </html>
上面的程式碼同樣實現了計數功能,採用的是遞迴方式。
相關文章
- setTimeout && setInterval
- setInterval和setTimeout區別(驗證碼倒數計時)
- 間隔呼叫方法(setInterval與setTimeout)
- 深度解密setTimeout和setInterval——為setInterval正名!解密
- 用setTimeout和clearTimeout簡單實現setInterval與clearInterval
- 定時器(setInterval、setTimeout 和requestAnimationFrame)定時器requestAnimationFrame
- 從setTimeout/setInterval看JS執行緒JS執行緒
- JS動畫三劍客——setTimeout、setInterval、requestAnimationFrameJS動畫requestAnimationFrame
- VUE中setTimeout和setInterval自動銷燬Vue
- SetTimeout、SetInterVal、setImmediate和process.nextTick的理解
- JavaScript - 函式 setTimeout 和 setInterval 的比較JavaScript函式
- 關於setInterval和setTImeout中的this指向問題
- setInterval 、 settimeout 、clearInterval 用法(特殊情況下代替schedule)
- 定時器(setTimeout/setInterval)最小延遲的問題定時器
- javascript定時器(setTimeout和setInterval)的使用詳解JavaScript定時器
- JavaScript深入淺出非同步程式設計一、setTimeout和setIntervalJavaScript非同步程式設計
- 細說setTimeout/setImmediate/process.nextTick的區別
- setTimeout()與clearTimeout()
- 淺析setTimeout與PromisePromise
- setTimeout中的this指向問題和箭頭函式結合的區別函式
- ??與?:的區別
- JavaScript setInterval()JavaScript
- localStorage與sessionStorage 區別Session
- showModal()與show() 區別
- <section>與<article> 區別
- onmouseover與onmouseenter區別
- offset與style區別
- cellpadding與cellspacing 區別padding
- put與putIfAbsent區別
- JavaScript 與TypeScript區別JavaScriptTypeScript
- mouseenter與mouseover區別
- currentTarget與target區別
- mouseout與mouseleave區別
- classList與className區別
- innerText與textContent區別
- GET與POST區別
- let與const區別
- NIO與IO區別