10 个回答

循环中,尤其是以数组长度作为循环条件的,一定要小心一个陷阱,就是循环过程中对数组进行增删操作,很容易导致死循环或者执行次数不足,因为判断条件(数组长度)一直在变,所以不要在循环里对条件数组进行操作,或者不要以要被操作的数组长度做判断条件。

很奇怪的提问!!!!
难道for循环没有执行完,for循环后面的语句会执行吗?

for循环都会先执行完自己内部的同步执行的逻辑之后再跳出循环的…所以你是写在for循环后面的,是会等for循环执行完再执行的…

好奇怪的问题,for循环执行完就会执行下面语句啊,除非你语法错了

是不是考虑一下for in 循环呢? for(item in order){};nextOperation;

建议使用for(var i=(orders.length-1);i>-1;i--).从后往前循环,删除数组内容就不会有问题了。

可以先把要循环的数组保存起来就行了
for (var i = 0, len = orders.length; i < len; i ++) {

// ...

};
这样只获取了一次最初的orders.length的值,还提高了性能

因为var不受块级作用域约束,线程是没有等待异步的。用let在块级域中是等待执行的。所以

for (let i = 0; i < 5; i++) {
        setTimeout(() => {
            console.log(i);
}, 100);
//0 1 2 3 4

使用for of

要在哪一个for里面执行,把下面的语句包在哪一个for后面的大括号里面?

for( ; ; ){
要执行的语句
    for(嵌套的for){
    嵌套的for里面要执行的语句
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏