前言
只描述了一些最基本的用法,和一些可能遇到的问题。一些细节,或者特殊写法之类的,没有。

1.for循环
最基本的循环方式,不多说。但是我在其它某篇文章上,听别人说,这种最基本的循环才是速度最快的,效率最高的。(就是这https://www.jb51.net/article/…

for(var i = 0;i<5;i++){console.log(i)
}

2.for in循环
for in循环是用来遍历对象的。要知道JavaScript对象的所有属性都是字符串,不过属性对应的值可以是任意数据类型。(注意:遍历时不仅能读取对象自身上面的成员属性,也能遍历出对象的原型属性)

let obj = {a:1, b:2, c:3};
for (let prop in obj) {    //prop指对象的属性名
console.log(prop, obj[prop]);
}
// 输出:
// a,1
// b,2
// c,3

for in同样可以用来循环数组,但是不推荐这么做。由于Array也是对象,而它的每个元素的索引被视为对象的属性,因此,for in循环可以直接循环出Array的索引,但得到的是String而不是Number,所以一旦你想用这个index去进行计算,就会出错。而且因为会遍历原型属性,所以可能得出的结果不会是你想要的(具体细节不多说,需要了解的自己查询,反正很多坑)。虽然可以用hasOwnProperty()方法避免这个缺陷,但是何必呢,循环方法那么多,换一个就是了。

for (var index in myArray) { // 不推荐这样
console.log(myArray[index]);
}

3. forEach循环
没什么好说的,看例子。(注意:forEach循环里面没办法用break跳出循环。而且在IE中无法实现,需要做兼容处理。)

let arr = ['123','qwewq','sfds'];
myArray.forEach(function (value, index) {console.log(value,index);
});
//输出
//"123",1
//"qwewq",2
//"sfds",3

4.for of循环
作为ES6新增的循环方法,个人觉得相当好用,而且方便。这个方法避开了for-in循环的所有缺陷。而且,它可以正确响应break、continue和return语句。

//循环数组
let arr = ['123','qwewq','sfds'];
for(let item of arr){console.log(item);    //item指的的就是数组每一项的值。不是索引。
}
//输出
//'123'
//'qwewq'
//'sfds'

for-of循环不仅支持数组,还支持大多数类数组对象,例如DOM NodeList对象。但是for of也有一个致命伤,就像例子看到的,没有索引。对,这是优点也是缺点。遍历数组对象,直接就是item.属性(或者item[属性]),而不用像for循环那样arr[index].属性(arrindex)。但是你有的时候真的就得用到index。不好意思,只能把数组转成Map()。但我觉得真的需要用到index,还是换成forEach吧。

//遍历字符串
let name = 'Asher';
for (let char of name){console.log(char);         //A s h e r
}

此外,对于在ES6中新增的两种类型,Map和Set(如果学过Java或者其他有这两种类型的语言,会发现用法几乎一样)。for of同样适用。

let mapArray = new Map();
for (let [key, value] of mapArray) {console.log(key,value);
}
//Set集合同理,不列举了。

总结
以上就是常用的几种for循环总结,很多细节,原理之类的没有写。因为这只是一个简单使用的介绍,不想写那么多。此外,还有很多像while循环,do-while循环之类的其它循环方法,都没提。因为根据我的使用经验,上面的几种已经可以应对几乎所有情况了。

相关资源:JS5种遍历对象的方式_遍历对象的方法-其它代码类资源-CSDN文库

js循环的几种方式总结相关推荐

  1. 在HTML 中嵌入 JS 代码的三种方式

    一,在HTML中嵌入JS代码的第一种方式:行间事件 行间事件是指将JavaScript函数写到HTML元素中的执行事件. 1.JavaScript 是一种事件驱动型的编程语言,通常都是在发生某个事件的 ...

  2. shell - 循环的2种方式

    shell - 循环的2种方式 0, 题目描述 以打印0-50以内7的倍数为列 1, for循环 1.1 常规for循环 #!/bin/bash for((i=0; i<50; i+=7)) d ...

  3. java跳出for循环_Java跳出多层for循环的4种方式

    Java跳出多层for循环的4种方式 一.使用return关键字控制 for (int i = 0;i<10;i++){ for (int j = 0; j<10; j++) { if ( ...

  4. Java循环的三种方式分享

    转自: Java循环的三种方式分享 下文笔者讲述java循环的三种方式分享,如下所示 一.while循环 while语法:while(循环条件){循环体}while关键字处理循环先判断循环条件当条件成 ...

  5. JavaScript系列-02 HTML嵌入js代码的第二种方式

    javaScript系列 HTML中嵌入js代码的第二种方式 脚本块的方式 文章目录 javaScript系列 前言 一.了解脚本块的方式 1.1运行规则 二.执行原理 1.编写代码 2.效果 总结 ...

  6. JavaScript——关于JavaScript、在HTML中嵌入JS代码的三种方式、变量

    文章目录 JavaScript 01 关于JavaScript 1.1 JS的发展历史 1.2 JS的特性 1.3 JS的组成 1.4 JSP和JS的区别 02 在HTML中嵌入JS代码的三种方式 2 ...

  7. HTML嵌入JS代码的三种方式

    目录 一.HTML嵌入JS代码的第一种方式:直接加一个事件句柄跟表达式 二.HTML嵌入JS代码的第二种方式:脚本块 三.HTML嵌入JS代码的第三种方式:外部引入js文件 一.HTML嵌入JS代码的 ...

  8. java中Map循环的几种方式

    package com.xhx.collection;import org.junit.Test;import java.util.HashMap; import java.util.Iterator ...

  9. js循环遍历数组的方式

    前言 最近在写前端代码,里面经常涉及到数组的循环取值.这里简单总结下前端中数组遍历的四种方式: 数组下标循环 for in 循环 for of 循环 foreach循环 例子 假设有如下数组:memb ...

最新文章

  1. ZooKeeper系列(4):ZooKeeper的配置文件详解
  2. python系统-python实现用户登录系统
  3. Opensetack + Kubernetes(K8S)黄金搭档漫谈
  4. android studio开关按钮,Android studio实现滑动开关
  5. c语言中输入字符用什么作用是什么意思,C语言编程问题
  6. Java教程:Java continue语句详解
  7. 布袋除尘器过滤风速多少_布袋除尘器过滤风速的确定及启动与停机的讲解
  8. ETL学习之八:添加日志记录
  9. springboot 集成 jwt+oauth+springsecurity 实现单点登录,feign远程调用,eruka注册中心,seata分布式事务配置
  10. Ajax Loading进度条gif在线生成网站Preloaders.net
  11. 认知无线电网络中的频谱切换理论
  12. Nginx基本配置参数说明与文档
  13. 文献阅读-深度学习跨模态图文检索研究综述
  14. java问题解读,String类为什么是final的
  15. 罗技G603鼠标欧姆龙D2FC-F-7N微动开关拆解修复双击问题要点解析
  16. 超宽带(UWB)学习笔记——TWR测距
  17. Deepin系统下MATLAB中文字体乱码问题解决(加上字体美化)
  18. 不推荐理财保险(分红险、投资连结险等)的几点理由---实际案例分析计算说明
  19. 祖传代码如何优化性能?
  20. python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐

热门文章

  1. 抖音小店无货源玩法,玩好这几点小店轻轻松松月入上万
  2. 《离散数学》:特殊的图
  3. myeclipse 集成 jbpm
  4. 几维安全等保2.0要点解析及落地实施技术攻略
  5. 计算机开机过程与自定义开机启动程序
  6. Acwing 第 95 场周赛
  7. oppo计算机夜间颜色,“暗夜精灵”出没,OPPO Reno超级夜景2.0让你成为色彩艺术家!...
  8. 为什么定位不了HTML,css 锚点定位不了
  9. apache的80端口被占用【已解决】
  10. 汽车智能座舱中 显示屏市场战略趋势分析 上篇