我有一段JavaScript代碼:Javascript,setInterval在while循環之後開始?如何讓它在while循環內啓動?
<script>
var i=1;
while(i<10){
setInterval(function(){
alert(i);
},1);
i++;
}
</script>
它提醒10號,而不是數字1到10。我希望setInterval
提醒數爲1〜10和1保持警惕10
我有一段JavaScript代碼:Javascript,setInterval在while循環之後開始?如何讓它在while循環內啓動?
<script>
var i=1;
while(i<10){
setInterval(function(){
alert(i);
},1);
i++;
}
</script>
它提醒10號,而不是數字1到10。我希望setInterval
提醒數爲1〜10和1保持警惕10
這是一個猜測,但是這是你想要的嗎?
setInterval(function(){
var i=1;
while(i<=10){
alert(i);
i++;
}
},1);
是的,這正是我想要的。謝謝你,你是最棒的。 –
是什麼發生的是你要求計算機每毫秒運行一次嵌套的內部函數。而且你要求連續做十次,所以計算機最終應該每秒發送一次精確的警報一萬次。我很驚訝它不消耗所有的CPU,並消耗所有的內存,並導致一個致命的錯誤。
這會持續到您撥打clearInterval()
,或者直到窗口關閉。
我如何讓它從1到10提醒並繼續從頭再來一遍?謝謝 –
對於後續問題,請在雅虎問題上發佈您的問題。 –
魔術詞語是關閉和範圍:
<script>
var i=1;
while(i<10){
(function(j) {
setTimeout(function(){
alert(j);
},1);
})(i);
i++;
}
</script>
總之,while循環的i
值可被警告之前完成。
也不是爲了,或缺乏在小提琴上:
我幾乎肯定你希望那是'setTimeout'。該循環每毫秒創建十個警報! –
@Grim ... - 沒錯,我沒有注意到並嘗試了一個小提琴,結果..... .....等待它.....它永不停止,無法關閉瀏覽器窗口。 – adeneo
@Blam - 當然他們會這麼做,我的瀏覽器沒有崩潰,我只是表示它幾乎是無盡的警報隊列。 – adeneo