【发布时间】:2013-07-10 15:09:43
【问题描述】:
这是相关的,b.c.我想测试循环结构。我通常做的是放在一个简单的语句中,比如
i++
在循环中。我做这个 b.c.我想知道智能解释器是否不会运行空块。例如。
for(var i = 0; i < 10; i++) {
}
可能根本不循环,因为循环中没有任何内容。
所以我通常会这样做:
for(var i = 0; i < 10; i++) {
i++;
}
但这确实测试了i++ 语句以及循环结构,这是我不想要的。
【问题讨论】:
-
聪明的口译员做聪明的事,所以答案是可能的。然而,今天的 JS 环境不仅仅是解释器。
-
跳过这样的循环一点也不聪明,我怀疑任何解释器都会这样做。
-
@bfavaretto:可以对其进行优化,将
i设置为其最终值。但我想知道循环的意义是什么,除了使i等于最终值。 -
我们的 cmets 有什么愚蠢的?这有什么实际应用?是什么迫使您选择替代方案?为什么你会运行一个循环来增加一个值,而没有任何其他副作用?
-
@CrazyTrain 在这种情况下是的,只需将
i设置为最终值即可。但是你可以在for的头上做各种各样的事情,比如更改许多变量、调用函数等。我认为优化器确定跳过循环是否值得或不(可能比仅运行大多数循环更昂贵)。关于 OP 的评论,我认为他在谈论我...... :)
标签: javascript micro-optimization