我在ExtJs docs here中查看了Ext
对象的源代码,我注意到了这个for
循环:
for (j = enumerables.length; j--;) {
k = enumerables[j];
if (config.hasOwnProperty(k)) {
object[k] = config[k];
}
}
因此,通常在for
循环中,我们进行初始化,指定条件然后递增/递减计数器。我确实看到了一个初始条件和j--
,它在每次迭代后递减计数器。但是,我无法弄清楚循环是如何终止的?我既没有看到任何条件,也没有break
关键字来终止循环。
我在这里缺少什么?
答案 0 :(得分:2)
j--
是循环条件,就是它将如何终止。尾随;)
是缺失的增量/减量。
j--构造递减j并测试旧的未递减值为非零以决定是否继续循环。当j为零时,循环停止;在循环下面,j的值将为-1。
要查找的for循环的关键部分是分号 - for ( ; ; )
任何有效的表达式(或以逗号分隔的表达式列表)都可以在分号之前,之间和之后的三个槽中的任何一个中进行。
循环初始值设定项位于(
之后和第一个;
之前。循环条件是两个; ;
之间的表达式的值。循环后更新发布在最后;
之后和)
之前。