JS中for 循环 与 for in 循环的区别

首先得先介绍一下什么是for 循环,什么是for in循环

for循环语法

 for (设置初始值;设置循环执行的条件;步长累加){
    //条件成立,执行循环体中的内容(循环体中存放的就是我们需要重复处理的事情)。
}

第一步:设置初始值

第二步:验证(设置)循环能够执行的条件

第三步:条件成立,执行循环体中的内容,不成立直接结束循环。

第四步:每一次执行完成循环体中的内容,为了能够执行下一次的循环,做一下步长的累加。

举两个小栗子看一下

for(var i=0;i<5){
    console.log(i);
}
// 这个循环是个“死循环”,因为条件一直成立,i永远是0,条件一直成立,循环一直执行下去。。。
缺少步长累加,条件一直成立。。。

注:项目中千万不要出现“死循环”,一旦出现死循环,下面的代码就执行不下去了。(因为循环属于同步编程,上面执行不完成,下面是代码根本不会执行,我以后为介绍同步编程和异步编程的概念与区别的,嘿嘿)

这就是一个中规中矩的for循环。

for(var i=0;i<5;i++){
    console.log(i);
}
console.log(i); // =>循环结束这个操作 =>5

for(var i=0 ;i<5;i+=3){
    console.log(i);
}
console.log(i);  // => i此时是6

在循环的循环体,经常会出现两个关键字:
continue:结束当前本轮循环,继续执行下一次循环。
break:结束整体循环。

所谓的结束本轮循环:其实就是让循环体中continue后面的代码不再执行,直接的去进行步长累加,开启下一轮的循环。

所谓结束整体循环:其实就是当循环体中晕倒break,break后面的操作语句都不再执行,步长累加也不再执行,所有和循环有关的都结束了。

for(var i=0;i<10;i+=2){
    if(i<=5){
        i++;
        continue;
    }else{
        i--;
        break;
    }
    console.log(i);
}
console.log(i);  //问:这个循环的输出结果

看到这里的童鞋,不妨看看这个题的结果是多少。。。

for in循环

一句话:for in循环是用来遍历(循环)对象键值对的。

var obj = {
    name:'zhufeng',
    age:8,
    1:'zxt',
    2:'zry',
}

// => 对象中有多少组键值对,我们的for in 循环就遍历多少次。
// => 每一次循环,key这个变量存储的都是当前循环这组键值对的属性名。
// => 1.key存储的值都是字符串格式的,(不管属性名是否是有效数字).
// => 2.在for in循环遍历的时候,大部分浏览器都是先把对象中的键值对进行排序(把数字属性名的排在前面,并且排列的时候
// 按照数字有小到大排列,其次把非数字的属性名按照之前重新的顺序排列,循环的时候按照重新排列的顺序依次执行。(小数无效,小数算作字母不算做数字。)

for 循环与for in循环的区别

for:只会遍历私有的属性和方法(更多的是索引),自己在原型上扩展的方法不会遍历出来。

for in:不仅可以遍历当前对象(或者当前实例)所有的私有的属性和方法,会遍历对象的所有可枚举属性,还可以把原型上自己创建的公共属性和方法进行遍历。(注意一点的是:原型上的公有属性是不可枚举的)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值