为什么在Javascript中使用空for循环 - for(;;)?

时间:2012-06-01 02:49:28

标签: javascript performance syntax

我忘了现在的位置,但我在某处读到for(;;){...}与说while(1){...}相同。 This answer确认这是真的,并解释了for(;;)为何起作用的原因。但是,它没有详细说明为什么它会有用,我似乎找不到空for循环的任何基准,而不是while循环。

它相当令人困惑(尽管确实非常聪明),但 更短。 Google的Closure Compiler将while(true)转换为空for循环,因此必须有理由。

tl; dr :为什么我应该在while(1)循环上使用空for循环?

2 个答案:

答案 0 :(得分:7)

键入的时间更短。这真的是唯一的原因。许多人只是按照这种方式编程,这是一个习惯问题。

我依稀记得有for(;;)更快的时间和语言。但是,过去现在大体上都是优秀的编译器/解释器。

答案 1 :(得分:2)

它略微更惯用,可能是因为它的输入时间更短,并且有一个时代,其重要性超过了代码的可读性。我已经阅读过软件工程书籍for(;;)while(1)更容易跳出来表示“无限循环”,所以如果坚持下去就更好了。它绝不是一个强大的惯例,它们在我能想到的任何方面在技术上是等同的。