传说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 时不满足条件,终止循环。