[ js ] 用setTimeout 倒數
我是JS新手,希望各位不吝指教
我程式希望能夠倒數5 4 3 2 1 0
感覺可以用setTimeout
可是程式跑的時候他沒有按照時間在倒數
而是在一瞬間倒數完
下列式程式碼
<html><head>
<script>
var i=5 ;
function test(){
if (i >=0){
document.write("still have "+i+" seconds."+"<br>");
i--;
setTimeout(test() , 1000);
}
}
setTimeout(test() , 1000);
</script>
</head><body>
</body></html>
請問哪裡出了問題呢?
謝謝
--
If a child on the street who has nothing is willing to share,
why are we who have everything still so greedy?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 106.1.105.148
推
10/20 22:21, , 1F
10/20 22:21, 1F
推
10/20 22:23, , 2F
10/20 22:23, 2F
→
10/20 22:24, , 3F
10/20 22:24, 3F
→
10/20 22:24, , 4F
10/20 22:24, 4F
→
10/20 22:24, , 5F
10/20 22:24, 5F
原來如此,那我想請問一下兩個問題:
1.為什麼setTimeout執行函數允許兩種寫法?
setTimeout(test, 1000);
setTimeout("test()", 1000);
還有我看網路上有人說第一個參數一定要加分號
setTimeout("test();", 1000);
兩種寫法都能跑
請問這裡又是怎麼回事@.@?
2.這個程式跑的時候
5秒 -> 4秒 的時候會覆蓋
可是接下來卻不會覆蓋
請問是為什麼呢??
感謝
※ 編輯: liu2007 來自: 106.1.105.148 (10/20 22:52)
推
10/20 23:02, , 6F
10/20 23:02, 6F
→
10/20 23:03, , 7F
10/20 23:03, 7F
→
10/20 23:03, , 8F
10/20 23:03, 8F
→
10/20 23:04, , 9F
10/20 23:04, 9F
→
10/21 02:30, , 10F
10/21 02:30, 10F
→
10/21 02:31, , 11F
10/21 02:31, 11F
→
10/21 02:31, , 12F
10/21 02:31, 12F
→
10/21 02:33, , 13F
10/21 02:33, 13F