这是相关的,因为我想测试循环结构。我通常做的是放在一个简单的陈述中,比如
i++
在循环。我这样做是因为我想知道智能解释器是否不会运行空块。例如。
for(var i = 0; i < 10; i++) {
}
可能根本不循环,因为循环中没有任何内容。
所以我通常会做类似的事情:
for(var i = 0; i < 10; i++) {
i++;
}
但这确实测试了i++
我不想要的语句以及循环结构。
这是相关的,因为我想测试循环结构。我通常做的是放在一个简单的陈述中,比如
i++
在循环。我这样做是因为我想知道智能解释器是否不会运行空块。例如。
for(var i = 0; i < 10; i++) {
}
可能根本不循环,因为循环中没有任何内容。
所以我通常会做类似的事情:
for(var i = 0; i < 10; i++) {
i++;
}
但这确实测试了i++
我不想要的语句以及循环结构。
这里看看这个。注意尝试显示警报时的延迟:http: //jsfiddle.net/xs724/
for(var ii = 0; ii < 1000000000; ii++){}
alert("DONE");
我在 chrome 中对此进行了测试。它很可能因浏览器而异。
JsPerf 链接:http: //jsperf.com/js-optimizationlooping
答案是:你永远不知道。现代 JavaScript 引擎中正在进行许多优化。一个例子是死代码消除,它跳过不影响最终结果的代码。
关于 IE9 中的这个特性有一个相当有趣的争议:http: //digitizor.com/2010/11/17/internet-explorer-9-caught-cheating-in-sunspider-benchmark/
但是你为什么要一遍又一遍地运行一个空块呢?
如果您希望 JavaScript 解释器简单地等待,请尝试以下答案:
什么是 sleep() 的 JavaScript 版本?
在 Javascript 中休眠 - 动作之间的延迟