学习任何语言都离不开循环,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 不能遍历 字符串  对象

最新文章

  1. EFS解密----未重装系统
  2. php接收数据
  3. 远程测试mysql数据库3306端口报错
  4. 系统数据文件和信息之附加组ID
  5. libCURL动态分配buffer——节约内存
  6. Linux程序设计(二)shell程序设计
  7. View.setTag()的作用
  8. bzoj 2741: 【FOTILE模拟赛】L 分塊+可持久化trie
  9. 【转】Linux下svn的常用工作流程
  10. qt环境问题导致的编译错误
  11. CentOS7--Xshell网络中断引起的vi编辑文件问题
  12. web压力测试-pylot
  13. TypeConverter的使用
  14. 开源HUSTOJ
  15. Python 安装beautifulsoup4遇到No module named setuptools问题解决方法
  16. Java代码审计入门篇
  17. 微信WebView关闭后本地cookie无法清除问题
  18. hihoCoder week19 RMQ问题再临-线段树 单点更新 区间查询
  19. linux 多进程fork
  20. foreach的使用原理简单解析

热门文章

  1. Spring Boot AutoConfiguration注解@ConditionalXXXX之前生今世
  2. spring boot自动配置之jdbc
  3. asp.net导出execl和图片
  4. 【Git 三】生成并添加SSH秘钥
  5. [NOIP2014普及组]子矩阵
  6. What is x86 Conforming Code Segment?
  7. select &amp;amp; epoll
  8. UI_UISegmentedControl 控件
  9. android-Animation进阶(创造用户舒服的动画)
  10. CSS的水平居中和垂直居中解决方案