【发布时间】:2011-04-22 06:07:06
【问题描述】:
我想知道为什么在打印所有值之前我会收到警报
<script>
for(var i=0; i<=1000; i++)
{
console.log(i);
}
alert('Hello');
</script>
【问题讨论】:
标签: javascript
我想知道为什么在打印所有值之前我会收到警报
<script>
for(var i=0; i<=1000; i++)
{
console.log(i);
}
alert('Hello');
</script>
【问题讨论】:
标签: javascript
好吧,它没有在循环之前执行,它正在正确执行。
您的控制台可能更新得有点晚了。
【讨论】:
控制台落后了。循环首先执行。这显示得更好:
var t = [];
for(var i=0; i<=1000; i++)
{
t.push(i);
}
console.log(t.length);
alert('Hello');
【讨论】:
alert() 将block your browser whilst waiting to be dismissed by the user。
可能在警报出现时它们还没有被写入console。这取决于您的 console 对象是什么。
顺便说一句,在我的 OS X 上的 Chrome 10 发出警报之前,它们在控制台中显示得很好。
【讨论】:
您是如何执行此操作的?在显示所有数字之前,我的控制台不会显示警报。你的一定是懒惰地渲染输出。所以循环确实在警报之前完成,但日志只写入缓冲区。
【讨论】:
<script>
INSTRUCTION A;
INSTRUCTION B;
INSTRUCTION C;
</script>
在 javascript 中,指令 B 的执行不依赖于 A 的完成,对于 C 也是如此。
您可能想尝试以下方法:
var test = 0;
var i=0;
while(test!=1) {
console.log(i);
i++;
if(i==1000) {
alert("Hi!");
test=1;
}
}
【讨论】: