关于JavaScrip中关于for循环的疑问

传说JavaScrip中for循环有种优化写法:

for(let i = arr.length; i--;) {
  // code
}

本人亲自测试了,确实可以。不过我却有个疑问,这种写法没有循环终止条件啊,为什么不会导致死循环呢,哪位大神可以帮忙解惑,不胜感激!

i--就是循环判断条件,js会进行类型转换的;for(a;b;c)语句中b就是循环终止条件,你这样的写法只不过是把判断条件和--操作同时做了

arr.length是一个确定的值,i--减到0不就停止了

i为0时候就停了,可以打印出来看下就理解了。

楼上说的没错,i 从初始值 arr.length 开始依次递减,当 i 减到 0 的时候,会进行如下判断 if(0){return false};

所以系统会判断 i 为 0 时不满足条件,终止循环。