for循环中的条件语句简单为i

时间:2014-06-27 20:16:21

标签: javascript for-loop conditional-statements

我在库中发现了这些代码行来听取触摸事件:

  for ( var i = elements.length; i; i-- ) {
    iterator( elements[ i - 1 ], elements );
  }

让我感到惊讶的是一秒钟。我这样理解代码:i是整数正数或null,条件语句是否为正数 我理解对吗?当i == - 1时我会返回false吗?或者我错过了什么(比如可以在没有条件语句的情况下编写for循环)?

2 个答案:

答案 0 :(得分:3)

条件基本上是if( i) proceedToNextIteration();

随着数字的增加,只有零是假的并且检查失败。在上述情况下-1是正确的。

出于这个原因,我将该代码重写为:

for( var i = elements.length-1; i >= 0; i--) {
    iterator( elements[i], elements);
}

它的最终条件更为明确。

答案 1 :(得分:2)

这是Javascript中for statement的结构:

for ([initialization]; [condition]; [final-expression])
   statement

您提供的声明     for(var i = elements.length; i; i--)

遵守此语法。这与

相同
for(var i = 10; i!=0; i--)

10elements.length)到1的含义循环。与从110的循环类似。

在Javascript中,条件i != 0可以仅用i替换。

含义:

if(i != 0)

if (i)

是一样的。这就是条件部分所做的。

将列表或数组的元素从max更多地循环到0对于从中删除项目很有帮助。