首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否运行空块?

是否运行空块?
EN

Stack Overflow用户
提问于 2013-07-10 23:09:43
回答 2查看 77关注 0票数 0

这是相关的b.c.我想测试一下循环结构。我通常要做的就是用一个简单的语句

代码语言:javascript
复制
i++

在循环中。我做的是b.c.我想知道一个聪明的解释器是否会运行空块。例如。

代码语言:javascript
复制
for(var i = 0; i < 10; i++) {
}

可能根本不会循环,因为循环中什么都没有。

所以我通常会这样做:

代码语言:javascript
复制
for(var i = 0; i < 10; i++) {
    i++;
}

但是这确实测试了i++语句和循环结构,这是我不想要的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-10 23:12:41

来看看这个。请注意尝试显示警报时的延迟:http://jsfiddle.net/xs724/

代码语言:javascript
复制
for(var ii = 0; ii < 1000000000; ii++){}
alert("DONE");

我在chrome中对此进行了测试。它很可能因浏览器而异。

JsPerf链接:http://jsperf.com/js-optimizationlooping

票数 2
EN

Stack Overflow用户

发布于 2013-07-10 23:21:32

答案是:你永远不会知道。在现代JavaScript引擎中有很多优化正在进行。一个例子是死代码消除,它跳过不会影响最终结果的代码。

关于IE9中的这个特性有一个相当有趣的争议:http://digitizor.com/2010/11/17/internet-explorer-9-caught-cheating-in-sunspider-benchmark/

但是为什么你要一遍又一遍地运行一个空块呢?

如果您想让JavaScript解释器简单地等待,请尝试以下答案:

What is the JavaScript version of sleep()?

Sleep in Javascript - delay between actions

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17574293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档