为什么在 Javascript 中使用 for(var i = 3; i >= 0; i--) 和 for(var i = 3; i--;) 存在差异

Mad*_*ock 0 javascript for-loop

为什么有约束和无约束的 for 循环使用有很大差异。

有条件 for(var i = 3; i >= 0; i--) { console.log(i); }

输出 3 2 1 0

无条件 for(var i = 3; i--;) { console.log(i); }

输出 2 1 0

为什么没有条件的会跳过第一次迭代并且也停在0处。

如果不使用条件而是加一而不是减,则会导致无限循环

Que*_*tin 6

第二个确实有一个条件:i--。对条件的修改i是副作用。

\n

该条件在日志语句之前运行(而不是在其之后),因此它不会\xe2\x80\x99t 记录,3因为i更改得太快。

\n

0是一个假值,因此当i--评估时0条件不再匹配。

\n