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

为什么在Javascript中使用空for循环--for(;)?,javascript,performance,syntax,Javascript,Performance,Syntax,我忘了现在在哪里了,但我在某处读到,(;;){…}的与说while(1){…}是一样的。确认这是正确的,并解释为什么(;;)的可以工作。但是,它没有详细说明为什么它会有用,而且我似乎找不到空for循环与while循环的任何基准 它相当令人困惑(尽管承认它相当聪明),但它较短。Google的闭包编译器将while(true)转换为空for循环,所以一定有原因 tl;dr:为什么我应该在上使用空for循环,而(1)循环?它的键入时间更短。这是唯一的原因。很多人就是这样长大的,这是一种习惯 我模模糊糊

我忘了现在在哪里了,但我在某处读到,(;;){…}的
与说
while(1){…}
是一样的。确认这是正确的,并解释为什么(;;)
可以工作。但是,它没有详细说明为什么它会有用,而且我似乎找不到空
for
循环与
while
循环的任何基准

它相当令人困惑(尽管承认它相当聪明),但它较短。Google的闭包编译器将
while(true)
转换为空for循环,所以一定有原因


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

它的键入时间更短。这是唯一的原因。很多人就是这样长大的,这是一种习惯


我模模糊糊地记得有一个时间和语言,
for(;;)
更快。但这在过去基本上是用任何半体面的优化编译器/解释器实现的。

它稍微更惯用一些,大概是因为它的键入时间更短,而且在那个时代,这比代码可读性更重要。我在软件工程书籍中读到,
for(;;)
while(1)
更容易理解为“无限循环”,所以如果这是一种惯例,最好还是坚持下去。但这绝不是一个强有力的约定,在我能想到的任何方面,它们在技术上都是等价的。

这是一个偏好,一个并不比另一个好。我个人认为它应该失败,因为“条件”是空的,因此是错误的…@Kolink:的确,我也是。但这是C和(我相信)Java的做法,而要改变这一点只会让很多人感到困惑让人们在你的代码前停顿片刻。@ElliotBonneville:事实上,空语句是正确的。;)@德里克:谢谢你的测试,我想这两者之间并没有什么区别。