for for循环 - for(;;)

pim*_*vdb 10 javascript

我正在探索谷歌闭包编译器,我注意到的一件事是它转换while(true)成了for(;;).

两者都挂起浏览器,但为什么空for循环不会立即中断?它的第二部分是空的,因此是假的.当第二部分是假的时候,for循环停止并继续执行for循环之后的代码是不是真的?

有人可能会对此作出解释吗?

Mch*_*chl 21

不,这不是真的.

请参阅:https://developer.mozilla.org/en/JavaScript/Reference/Statements/for

条件

在每次循环迭代之前要计算的表达式.如果此表达式的计算结果为true,则执行语句.此条件测试是可选的.如果省略,则条件始终计算为true.如果表达式的计算结果为false,则执行将跳转到for构造后面的第一个表达式.

我或许应该提供ECMAScript参考的链接,但我很确定它或多或少地说明了相同的内容.

  • 祝好运.我刚刚通过[ECMA-262规范](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf)查看了for for循环,它们通常是不可理解的.上述行为是遵循规范中的步骤而不是由其明确强制执行的结果. (4认同)