这是相关的b.c.我想测试一下循环结构。我通常要做的就是用一个简单的语句
i++在循环中。我做的是b.c.我想知道一个聪明的解释器是否会运行空块。例如。
for(var i = 0; i < 10; i++) {
}可能根本不会循环,因为循环中什么都没有。
所以我通常会这样做:
for(var i = 0; i < 10; i++) {
i++;
}但是这确实测试了i++语句和循环结构,这是我不想要的。
发布于 2013-07-10 23:12:41
来看看这个。请注意尝试显示警报时的延迟:http://jsfiddle.net/xs724/
for(var ii = 0; ii < 1000000000; ii++){}
alert("DONE");我在chrome中对此进行了测试。它很可能因浏览器而异。
JsPerf链接:http://jsperf.com/js-optimizationlooping
发布于 2013-07-10 23:21:32
答案是:你永远不会知道。在现代JavaScript引擎中有很多优化正在进行。一个例子是死代码消除,它跳过不会影响最终结果的代码。
关于IE9中的这个特性有一个相当有趣的争议:http://digitizor.com/2010/11/17/internet-explorer-9-caught-cheating-in-sunspider-benchmark/
但是为什么你要一遍又一遍地运行一个空块呢?
如果您想让JavaScript解释器简单地等待,请尝试以下答案:
https://stackoverflow.com/questions/17574293
复制相似问题