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

rvi*_*hne 4 javascript operators while-loop

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

以下代码如何工作?(我意识到它循环于元素els)

var i = els.length;
while (i --> 0) {
    var el = els[i];
    // ...do stuff...
}
Run Code Online (Sandbox Code Playgroud)

我不知道是什么-->意思.它没有文档.有人可以开导我吗?

the*_*eye 9

它应该被理解为

i-- > 0
Run Code Online (Sandbox Code Playgroud)

那么,真正发生的是,

  1. i如果值大于0,则将检查value ,如果为true则控制将进入while块,如果为false while则将跳过该块.

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

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

for (var i = els.length - 1; i >= 0; i -= 1) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

请阅读更多关于是否++,--是正确的,或者不是.


scr*_*rd3 5

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

while((i--) > 0)
Run Code Online (Sandbox Code Playgroud)

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

while (x --\
            \
             \
              \
               > 0) //i goes down to zero!
Run Code Online (Sandbox Code Playgroud)

还是这样的

所以如果你有类似的东西

var i=3;
while(i-->0){
     console.log(i);
}
Run Code Online (Sandbox Code Playgroud)

它会回来

2
1
0
Run Code Online (Sandbox Code Playgroud)