js几种常用循环使用技巧

在js中的几种常用循环方法

  1. for循环
  2. while循环

for循环

最常用的循环语句,使用时需要注意:第一点,最好使用es6 声明变量,这样是为了防止产生闭包问题。至于什么是闭包大家自己百度一下有很多详细的解释。第二点,循环范围最好设置为一个变量,我们或许会经常这样使用

for(let i=0;i<a.length;i++){
}

这样做有一点不好,那就是每次循环都要计算a.length,可以这样优化:

let len = a.length;
for(let i=0;i<len;i++){
}

这样看,每次虽然不用再计算a.length,但是要判断i<len,所以还能这样:

let len = a.length;
for(let i = len;i--;){
}

while循环

在这里插入图片描述
如果我们要对数组进行增删操作,一定会影响到数组的长度变化。例如我想在数组中去除值为2的数:

    let arr = [1,2,2,2,2,1,1,1,2,2];
    let t = arr.length;
    for(let i=0;i<t;i++ ){
        if(arr[i] == 2){
            arr.splice(i,1);
        }
    }
    console.log(arr);

打印结果却是 [1, 2, 2, 1, 1,1, 2],原因就是每次匹配到一个符合的条件后,后面的每一项都上升一位,跳过了下一项的检查。

    let arr = [1,2,2,2,2,1,1,2,2];
    let t = arr.length;
    while(t--){
        if(arr[t] == 2){
            arr.splice(t,1);
        }
    }
    console.log(arr);

这样的输出结果就是 [1,1,1]了。当然,你也可以修改for循环,像上面最后优化的逆序,效果都是一样的。另外值得一说的是,逆序相对于正序能后节省一些时间,当然这个一些其实是可以忽略不计的,逆序循环的使用,有些影响代码的可读性,所以在不是要求极端优化的情况下,我们正常使用正序就可以。

其他的循环语句

for-in 语句通常被用来遍历对象,它的格式是这样的
for(keys in zhangsan){}

for(keys in object){
 //dosomething
}

遍历时不仅能读取对象自身上面的成员属性,也能延续原型链遍历出对象的原型属性,所以可以使用hasOwnProperty判断一个属性是不是对象自身上的属性。
for-of允许遍历获得键值(这俩个通常都用不到,而且性能都很低)。
还有一个do-while语句

do{
    //dosomething
    }while(条件判断);

do-while 它的运行机制是先执行一遍do 再进行判断,所以即使没有条件满足,它也至少执行一次。

循环控制

break:跳出当前所在循环,继续执行循环后面的语句。如果循环有多层,则break只能跳出一层。
continue:跳过本次循环剩余的代码,继续执行下一次循环。

for(var i = 1; i < 10; i++){
     
        if(i == 4){
            continue;
        }
        console.log(i);//1 2 3 5 6 7 8 9
    }

 for(var i = 1; i < 10; i++){
        if(i == 4){
            break;
        }
         console.log(i);//1 2 3
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值