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处。
如果不使用条件而是加一而不是减,则会导致无限循环
第二个确实有一个条件:i--。对条件的修改i是副作用。
该条件在日志语句之前运行(而不是在其之后),因此它不会\xe2\x80\x99t 记录,3因为i更改得太快。
0是一个假值,因此当i--评估时0条件不再匹配。