最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么i--后直接變?yōu)??

<!DOCTYPE html>

<html>

?<head>

? <title>瀏覽器對象</title> ?

? <meta http-equiv="Content-Type" content="text/html; charset=gkb"/> ??

?</head>

?<body>

? <!--先編寫好網(wǎng)頁布局-->

? <h1>操作成功</h1>

? <p><span id="span"></span>秒后回到主頁<a onclick="B_back()">返回</a></p>

?

? <script type="text/javascript"> ?

?

? ?//獲取顯示秒數(shù)的元素,通過定時器來更改秒數(shù)。

? ?// setTimeout(B_back,5000);

? ?// function B_back(){

? ?// ? ? history.back();

? ?// }


? ?//讓秒數(shù)從5遞減到0

? ?i=5;

? ?document.getElementById("span").innerHTML=i;

? ?function changeSecond(){

? ?i--;

? ?document.getElementById("span").innerHTML=i;

? ?}

? ?for(a=0;a<5;a++){

? ?setTimeout(changeSecond,2000);

? ?}

? ?//通過window的location和history對象來控制網(wǎng)頁的跳轉(zhuǎn)。

?</script>?

</body>

</html>

原先設(shè)想是讓秒數(shù)從5逐漸遞減到0,但是實際運行時,秒數(shù)經(jīng)過2000毫秒后立馬從5變?yōu)?

http://img1.sycdn.imooc.com//596a4e710001d31502630170.jpg

正在回答

2 回答

for(a=0;a<5;a++){

? ?setTimeout(changeSecond,2000);

? ?}

這里相當(dāng)于連續(xù)五次執(zhí)行計時器?

是連續(xù)五次調(diào)用changeSecond()函數(shù)

所以i等于0

這是我寫的 希望對你有幫助

<script >

?var num = 5

? document.getElementById("span").innerHTML = num

? ?function change(){

? ? ? ?num--;

? ? document.getElementById("span").innerHTML = num;

? ? if(num==0){

? ? ? ? window.open('http://yifanck.cn','_top');

? ? }

? ? ?setTimeout("change()",1000);

? ?}

? ?setTimeout("change()",1000);

</script>

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

吉夫 提問者

謝謝,但是for里面的函數(shù)不是一次一次執(zhí)行的嗎?為什么會連續(xù)執(zhí)行呢?
2017-07-16 回復(fù) 有任何疑惑可以回復(fù)我~
#2

吉夫 提問者

剛才用if語句試了一下,發(fā)現(xiàn)了個更詭異的,運行后5遞減到4就不動了,源代碼在下面
2017-07-16 回復(fù) 有任何疑惑可以回復(fù)我~
#3

吉夫 提問者

非常感謝!
2017-07-16 回復(fù) 有任何疑惑可以回復(fù)我~
#4

吉夫 提問者

想了一下,大概是因為:for循環(huán)并沒有等到changeSecond執(zhí)行完才開始下一輪循環(huán),而是在changeSecond剛開始執(zhí)行時就立馬進入下一輪循環(huán),于是上一輪循環(huán)的changeSecond和下一輪循環(huán)的changeSecond疊加在一起,最終5輪循環(huán)的changeSecond疊加在一起,于是結(jié)果就是"5直接變?yōu)?"
2017-07-17 回復(fù) 有任何疑惑可以回復(fù)我~
#5

吉夫 提問者 回復(fù) 吉夫 提問者

if那個是搞錯了,本來if就只執(zhí)行一次而已,5變?yōu)?后不動原本就是正常的。
2017-07-17 回復(fù) 有任何疑惑可以回復(fù)我~
#6

慕粉13526308623 回復(fù) 吉夫 提問者

for循環(huán)里的內(nèi)容只有執(zhí)行完才會進行下一次循環(huán) for循環(huán)里只是調(diào)用changeSecond()函數(shù) changeSecond()函數(shù)執(zhí)行的效果顯示在頁面上 并不在for循環(huán)里等待2s在執(zhí)行下一個changeSecond() for循環(huán)執(zhí)行速度很快 不到1ms就能執(zhí)行完5次setTimeout() 最后的確可以看成是5個changeSecond()疊加執(zhí)行,還是有些誤差 你可以試試for循環(huán)一億次 輸出循環(huán)結(jié)果 看看for循環(huán)的速度 個人看法 參考看看即可
2017-07-17 回復(fù) 有任何疑惑可以回復(fù)我~
查看3條回復(fù)

<!DOCTYPE html>

<html>

?<head>

? <title>瀏覽器對象</title> ?

? <meta http-equiv="Content-Type" content="text/html; charset=gkb"/> ??

?</head>

?<body>

? <!--先編寫好網(wǎng)頁布局-->

? <h1>操作成功</h1>

? <p><span id="span"></span>秒后回到主頁<a onclick="B_back()">返回</a></p>

?

? <script type="text/javascript"> ?


? ?//讓秒數(shù)從5遞減到0

? ?var i=5;

? ?document.getElementById("span").innerHTML=i;

? ?function changeSecond(){

? ?i--;

? ?document.getElementById("span").innerHTML=i;

? ?}

? ?var a=0

? ?if(a<5){

? ? a++;

? ?setTimeout(changeSecond,1000);

? ?}

? ?//通過window的location和history對象來控制網(wǎng)頁的跳轉(zhuǎn)。

?</script>?

</body>

</html>


0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

為什么i--后直接變?yōu)??

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號