我有一段javascript:
<script>
var i=1;
while(i<10){
setInterval(function(){
alert(i);
},1);
i++;
}
</script>
它提醒了10号而不是1号到10号。我希望setInterval
提醒1到10号,并保持1到10的警报。
答案 0 :(得分:1)
神奇的词语是闭包和范围:
<script>
var i=1;
while(i<10){
(function(j) {
setTimeout(function(){
alert(j);
},1);
})(i);
i++;
}
</script>
简而言之,while循环在i
的值被警告之前结束
也不是小提琴的顺序或缺乏:
答案 1 :(得分:0)
发生的事情是你要求计算机每毫秒运行一次嵌套的内部函数。并且你要求连续十次这样做,所以到最后,计算机应该每秒发送一次警报,每秒一次。我很惊讶它没有占用所有CPU并消耗所有内存并导致致命错误。
这将持续到您致电clearInterval()
,或直到窗口关闭。
答案 2 :(得分:0)
这是猜测,但这是你想要的吗?
setInterval(function(){
var i=1;
while(i<=10){
alert(i);
i++;
}
},1);