while(i - > 0)是什么意思?

时间:2013-12-24 03:48:45

标签: javascript while-loop operators

如果这是一个愚蠢的问题,我道歉,但我无法在任何地方找到答案。

以下代码如何运作? (我意识到它遍及els

的元素
var i = els.length;
while (i --> 0) {
    var el = els[i];
    // ...do stuff...
}

我不知道-->的含义。它没有文档。有人可以开导我吗?

4 个答案:

答案 0 :(得分:7)

应该被理解为

i-- > 0

所以,真正发生的是,

  1. i的值如果大于0则会被检查,如果是,则控件将进入while块,如果为false while块将是跳过。

  2. 无论哪种方式,i的值将在检查条件后递减,立即

  3. 当我们使用计数器运行循环时,使用for循环总是更好,就像这样

    for (var i = els.length - 1; i >= 0; i -= 1) {
        ...
    }
    

    Please read more about whether ++, -- is okay or not.

答案 1 :(得分:4)

这只是奇怪的间距,应该是

while((i--) > 0)

它只是后递减和检查条件。 在C++问题上有这个幽默的答案,但我认为它被删除了

while (x --\
            \
             \
              \
               > 0) //i goes down to zero!

或类似的东西,无论如何

所以,如果你有像

这样的东西
var i=3;
while(i-->0){
     console.log(i);
}

它将返回

2
1
0

答案 2 :(得分:0)

这只是奇怪的间距。它与

相同
while (i--  >  0) {

答案 3 :(得分:0)

代码应该是:

while (i-- > 0) {

如果变量i之后的值已经递减,则循环将在其中运行。