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