我在库中发现了这些代码行来听取触摸事件:
for ( var i = elements.length; i; i-- ) {
iterator( elements[ i - 1 ], elements );
}
让我感到惊讶的是一秒钟。我这样理解代码:i是整数正数或null,条件语句是否为正数 我理解对吗?当i == - 1时我会返回false吗?或者我错过了什么(比如可以在没有条件语句的情况下编写for循环)?
答案 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--)
从10
(elements.length
)到1
的含义循环。与从1
到10
的循环类似。
在Javascript中,条件i != 0
可以仅用i
替换。
含义:
if(i != 0)
和
if (i)
是一样的。这就是条件部分所做的。
将列表或数组的元素从max更多地循环到0对于从中删除项目很有帮助。