當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
js中setTimeout的用法和JS计时器setTimeout与setInterval方法的区别和confirm方法
生活随笔
收集整理的這篇文章主要介紹了
js中setTimeout的用法和JS计时器setTimeout与setInterval方法的区别和confirm方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
setTimeout()在js類中的使用方法
setTimeout (表達式,延時時間)
setTimeout(表達式,交互時間)
延時時間/交互時間是以豪秒為單位的(1000ms=1s)
setTimeout 在執行時,是在載入后延遲指定時間后,去執行一次表達式,僅執行一次
setTimeout 在執行時,它從載入后,每隔指定的時間就執行一次表達式
1,基本用法:執行一段代碼:
var i=0;
setTimeout("i+=1;alert(i)",1000);
執行一個函數:
var i=0;
setTimeout(function(){i+=1;alert(i);},1000);
//注意比較上面的兩種方法的不同。下面再來一個執行函數的:
var i=0;
function test(){i+=1;alert(i);
}
setTimeout("test()",1000);
也可以這樣:
setTimeout(test,1000);
總結:
setTimeout的原型是這樣的:
iTimerID = window.setTimeout(vCode, iMilliSeconds [, sLanguage])setTimeout有兩種形式
setTimeout(code,interval)setTimeout(func,interval,args)
其中code是一個字符串func是一個函數.
注意"函數"的意義,是一個表達式,而不是一個語句.比如你想周期性執行一個函數
function a(){//...}
可寫為
setTimeout("a()",1000)
或者
setTimeout(a,1000)
這里注意第二種形式中,是a,不要寫成a(),切記!!!展開來說,不管你這里寫的是什么,如果是一個變量,一定是一個指向某函數的變量;如果是個函數,那它的返回值就 要是個函數
var i=0;function xilou(){i+=1;if(i>10){alert(i);return;}setTimeout("xilou()",1000);//用這個也可以//setTimeout(xilou,1000);}
3,在類中使用setTimeout終于到正題了,其實在類中使用大家遇到的問題都是關于this的,只要解決了這個this的問題就萬事無憂了。呵呵。讓我們來分析一下:
function xilou(){this.name="xilou";this.sex="男";this.num=0;}xilou.prototype.count=function(){this.num+=1;alert(this.num);if(this.num>10){return;}//下面用四種方法測試,一個一個輪流測試。setTimeout("this.count()",1000);//A:當下面的x.count()調用時會發生錯誤:對象不支持此屬性或方法。setTimeout("count()",1000);//B:錯誤顯示:缺少對象setTimeout(count,1000);//C:錯誤顯示:'count'未定義//下面是第四種var self=this;setTimeout(function(){self.count();},1000);//D:正確}var x=new xilou();x.count();
錯誤分析:A:中的this其實指是window對象,并不是指當前實例對象B:和C:中的count()和count其實指的是單獨的一個名為count()的函數,但也可以是window.count(),因為window.count()可以省略為count()D:將變量self指向當前實例對象,這樣js解析引擎就不會混肴this指的是誰了。
話說回來,雖然我們知道setTimeout("this.count()",1000)中的this指的是window對象,但還是不明白為什么會是window對象^_^(有點頭暈...)那我們可以想象一下這個setTimeout是怎樣被定義的:setTimeout是window的一個方法,全稱是這樣的:window.setTimeout()那應該是這樣被定義的: window.setTimeout=function(vCode, iMilliSeconds [, sLanguage]){//.....代碼return timer//返回一個標記符}所以當向setTimeout()傳入this的時候,當然指的是它所屬的當前對象window了。 計時器setTimeout()與setInterval()是原生JS很重要且用處很多的兩個方法, 但很多人一直誤以為是相同的功能: 間隔時間重復執行傳入的句柄函數. 但實際上, 并非如此, 既然JS給出了兩個不同的命名, 肯定有其迥異之處.先來看看兩者JS手冊及英文詞典上的解釋:JS手冊?setTimeout() : 用于在指定的毫秒數后調用函數或計算表達式;英文釋義?timeout() : 超時;暫時休息;工間休息;JS手冊?setInterval() : 按照指定的周期(以毫秒計)來調用函數或計算表達式. 會不停地調用函數,直到 clearInterval() 被調用或窗口被關閉;英文釋義?interval() : 間隔;間距;幕間休息;不難看出, 只要我們仔細體會JS手冊及命名釋義, 就能很容易的區分開兩者的區別. 簡單的說, 兩才的區別在于, setTimeout()方法是在等待指定時間后執行函數, 且只執行一次傳入的句柄函數. setInterval()方法是每指定間隔時間后執行一次傳入的句柄函數,循環執行直至關閉窗口或clearInterval().例子如下:
var timeout=function(){ alert('等待2s后彈出,僅此一次!在等待時間內clearTimeout可停止執行!')
}
var interval=function(){ alert('每2s循環彈出,直至clearInterval或關閉窗口!')
}
var input=document.getElementsByTagName('input');
var clearTimeoutFun=null;
var clearIntervalFun=null;
input[0].onclick=function(){ clearTimeoutFun=setTimeout(timeout,2000);
}
input[1].onclick=function(){ clearTimeout(clearTimeoutFun);
}
input[2].onclick=function(){ clearIntervalFun=setInterval(interval,2000);
}
input[3].onclick=function(){ clearInterval(clearIntervalFun);
}
定義和用法confirm() 方法用于顯示一個帶有指定消息和 OK 及取消按鈕的對話框。
語法confirm(message)參數描述message要在 window 上彈出的對話框中顯示的純文本(而非 HTML 文本)說明如果用戶點擊確定按鈕,則 confirm() 返回 true。如果點擊取消按鈕,則 confirm() 返回 false。在用戶點擊確定按鈕或取消按鈕把對話框關閉之前,它將阻止用戶對瀏覽器的所有輸入。在調用 confirm() 時,將暫停對 JavaScript 代碼的執行,在用戶作出響應之前,不會執行下一條語句。提示和注釋提示:對話框按鈕的文字是不可改變的,因此請小心地編寫問題或消息,使它適合用確認和取消來回答。實例
<html>
<head>
<script type="text/javascript">
function disp_confirm() {
var r=confirm("Press a button")
if (r==true) {
document.write("You pressed OK!")
} else {
document.write("You pressed Cancel!")
}
}
</script>
</head>
<body>
input type="button" onclick="disp_confirm()" value="Display a confirm box" /></body>
</html>
?
總結
以上是生活随笔為你收集整理的js中setTimeout的用法和JS计时器setTimeout与setInterval方法的区别和confirm方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UidGenerator:百度开源的分布
- 下一篇: PHP中的json_encode和jso