for 循环

目录

1、for循环

2、for in循环

3、for of 循环

4、forEach 循环

5、三者区别

(1)  for…in与for…of

(2) for…in还存在的缺点

(3)forEach与for…of


1、for循环

 for(初始化变量;条件表达式;操作表达式){
       
           循环体语句;
       }

2、for in循环

for...in循环:遍历数组或集合的
    
         for(var 变量  in  数组名或集合名)  //变量中存放的数组或集合的索引
         {
            数组名[变量]
         }

var arr = [1, 2, 3, 4, 5, 6, 7];
            console.log('原数组是:', arr);
            var i = 0;
            var j = arr.length - 1;
            while (i < j) {
                var temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
                i++;
                j--;
            }

             for(var k in arr){
                console.log(arr[k]);
            } 

3、for of 循环

for...of循环:遍历数组和集合
    
         for(var 变量 of 数组名或集合名) //变量中存放的是数组或集合中的元素
         {
             console.log(变量);
         }

//for  of循环  遍历数组循环

            for (var k of arr){
                console.log(arr[k]);
            }

4、forEach 循环


       arr.forEach(function(k)

{  //依次从数组中取出元素放在k中,然后将k作为参数传递给函数
         console.log(k);
       })

//forEach 循环

            arr.forEach(function(k)
            {
                console.log(k);
            }
            )

5、三者区别

(1)  for…in与for…of

for…in循环由于历史遗留问题,它所遍历的其实是对象的属性名称,而for…of所遍历的是可迭代对象的自身所有元素。

可以看出for…in不但把自身的属性名遍历出来,还将其原型上的属性遍历出来了,由此我们可以更进一步的确定for…in所遍历的为对象本身以及其原型对象所有可遍历属性的属性名。 而for…of则完全修复了这些问题,它只循环集合本身的元素

(2) for…in还存在的缺点

  • 数组的键名为数字,但是for…in循环的时候是以字符串作为键名,如"1"、"2"、"3"等。
  • 某些情况下,for…in循环会以任意顺序遍历键名。

(3)forEach与for…of

作为数组自带的forEach方法,没有办法与break、continue以及return配合使用,而for…of可以做到,下面为一个for…of中使用break的例子。

// for of 遍历
var a=[1,2,3,4,5];
for (var i of a){
    if(i >3){
        break;
    }
    console.log(i)
}
//1 2 3

循环类型

说明
for… for循环中可以使用return、break等来中断循环

for…in

循环遍历的值都是数据结构的键值
for...in 语句用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作),其所遍历的为对象的属性名(键),而非属性值。

for…of

它是ES6中新增加的语法,用来循环获取一对键值对中的值
for…of语法是ES6新引入的语法,for…of语法用于遍历可迭代(iterable)对象,js中的可迭代对象包括字符串String、数组Array、集合Set、字典Map、arguments 对象、DOM NodeList 对象等等,for…of语法用于遍历这些对象本身的元素

forEach

对数组的每一个元素执行一次提供的函数(不能使用return、break等中断循环),不改变原数组,无返回值undefined。
forEach作用于数组对象,用于遍历数组对象的每一个元素,并对每一个元素执行回调(callback)函数。
上一篇:金三银四,应届生面试java程序员都需要准备些什么和注意些什么


下一篇:c# object 动态增加属性和值