js关于循环的理解

学习任何语言都离不开循环,js也是一样,看了网上的资料,整理一份关于js循环的理解。

1.最基础循环,js和其他高级语言一样使用for、while循环

(function() {
    for(var i=0, len=demoArr.length; i<len; i++) {
        console.log('demo1Arr['+ i +']:' + demo1Arr[i]);
    }
})();
  • for循环中的i在循环结束之后任然存在与作用域中,为了避免影响作用域中的其他变量,使用函数自执行的方式将其隔离起来()();
  • 避免使用for(var i=0; i<demo1Arr.length; i++){} 的方式,这样的数组长度每次都被计算,效率低于上面的方式。也可以将变量声明放在for的前面来执行,提高阅读性

使用范围,js的for循环只能用于 字符串和数组对象, 对于普通的对象不适用。

2.for in 循环遍历 

for(var index in demoArr){
    console.log(demoArr[index]);  
}

一般来说不要用for in来遍历数组,数组索引只是具有整数名称的枚举属性,并且与通用对象属性相同。不能保证for ... in将以任何特定的顺序返回索引;

对于对象和字符串也是一样, 但是不能遍历 set 和 map;

3. for of 是es6中的遍历方式,需要被遍历的对象实现interator接口,这个知识点在es6中,普通对象想用for of必须实现interator接口,当数据使用for of去遍历的时候,该属性会自动去找Symbol.iterator属性,当然map set 数组这些都是没问题的

4.forEach 循环 遍历数组 set map 不能遍历 字符串  对象

原文地址:https://www.cnblogs.com/czy960731/p/9512925.html