當(dāng)前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JS setTimeout 与 setInterval
生活随笔
收集整理的這篇文章主要介紹了
JS setTimeout 与 setInterval
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
事件流逝觸發(fā)的事件
這類事件不是基于用戶針對可見Web頁面元素執(zhí)行的行為,而是基于時間的流逝。
和JavaScript中所有其他事件一樣,這些時間流逝事件也是由函數(shù)處理的。
setTimeout()
撿重點說了
-
setTimeout允許添加更多的參數(shù)。它們將被傳入推遲執(zhí)行的函數(shù)
setTimeout(function(a,b){alert(a+b);},1000,2,5) // 7IE9以下不支持更多的參數(shù),可以用apply或bind實現(xiàn)
被setTimeout推遲執(zhí)行的回調(diào)函數(shù)是在全局環(huán)境執(zhí)行,這有可能不同于函數(shù)定義時的上下文環(huán)境。
this.login會報錯,因為取不到值。
一種解決方法是將user.sayHi放在函數(shù)作用域內(nèi)執(zhí)行,而不是在全局作用域中。
setTimeout(function(){user.sayHi();}, 1000); // "John"另一種方法,就是采用閉包,將this與當(dāng)前作用域綁定。
document.getElementById('click-ok').onclick = function() {var self = this;setTimeout(function() { self.value='OK';}, 100);}// setTimeout指定的函數(shù)中的this,總是指向定義時所在的DOM節(jié)點。setInterval()
setInterval指定某個任務(wù)每隔一段時間就執(zhí)行一次,也就是無限次的定時執(zhí)行。
<button onclick="clearInterval(time)">Stop!</button><script type="text/javascript">var counter = 0;var time = setInterval(function() {console.log(counter);counter++;},2000)簡易計數(shù)器,直到用戶點擊按鈕
function f() {for (var i=0;i<arguments.length;i++) {console.log(arguments[i]+" | "+arguments.length);}};setInterval(f,1000,1,2,3);// "1 | 3"// "2 | 3"// "3 | 3"與setTimeout一樣,除了前兩個參數(shù),setInterval 方法還可以接受更多的參數(shù),它們會傳入回調(diào)函數(shù)
待.......
定時器
關(guān)于setInterval()和setTimeout()返回值
關(guān)于setInterval()你所不知道的地方
總結(jié)
以上是生活随笔為你收集整理的JS setTimeout 与 setInterval的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ORACLE SQL调优之执行计划与隐藏
- 下一篇: java判断字符串中是否包含字母