摘要:JavaScript中,一共给开发者提供了一下几种循环语句,分别是while循环,do…while循环,for循环,for Each,for…in循环和for…of循环。

本文分享自华为云社区《JS中循环语句大集合丨【WEB前端大作战】》,原文作者:hwJw19 。

JavaScript中,一共给开发者提供了一下几种循环语句,分别是while循环,do…while循环,for循环,for Each,for…in循环和for…of循环。

下面我们就通过本文来仔细分辨一下,各个循环的使用差异。

while循环

语法:

while (expr){statement}

expr为条件表达式,当expr为真时,执行statement语句,执行结束后,再次进入下一轮循环,直到条件表达式为假时,跳出循环。

代码示例:

var n = 1;  //声明并初始化循环变量
while(n <= 100){  //循环条件n++;  //递增循环变量if (n % 2 == 0) document.write(n + "");   //执行循环操作
}

do…while循环

语法:

do{statement
} while(expr)

do…while循环与while循环很相似,区别在于,while循环是先判断再执行,而do…while循环会先执行一次语句,然后再开始判断循环。不论条件为真或者是假,都会执行一次。

代码示例:

var text = "" var i = 0;
do {
text += "<br>数字为 " + i; i++;
} while (i < 5);
document.getElementById("demo").innerHTML = text;

for循环

语法:

for (expr 1; expr 2; expr 3)
{statement
}

for循环想必也是大家比较熟悉的一种循环方式了,for循环主要用户循环执行一定次数的代码块,小括号中,是for循环的条件,花括号中,是循环条件为true时所需要执行的语句。缺点是写法比较麻烦。

示例代码:

for (var i=0; i<5; i++) {
x=x + "该数字为 " + i + "<br>";
}

forEach循环

语法:

array.forEach(function(currentValue, index, arr), thisValue)

由于for循环的写法比较繁琐,因此数组提供了内置的forEach方法,语法中的参数currentValue是必填的,其他参数选填。forEach语句的问题在于,无法中途跳出forEach循环,break命令或return命令都不能奏效。

代码示例:

var arr = [1, 2, 3, 4, 5];
arr.forEach(function (item) {console.log(item);
});

for…in循环

语法:

for (var in object) {
statement
} 

for…in循环主要用于循环遍历对象,可以获取对象的键名,但是for…in并不适合遍历数组,主要有如下原因:

  1. 数组的键名是数字,但是..in循环是以字符串作为键名“0”、“1”、“2”等等。
  2. ..in循环不仅遍历数字键名,还会遍历手动添加的其他键,甚至包括原型链上的键。
  3. 某些情况下,..in循环会以任意顺序遍历键名。

代码示例:

var person = {fname:"John", lname:"Doe", age:32}; var text = "";
var x;
for (x in person) {text += person[x] + " ";
}

for...of循环

语法:

for (variable of iterable) {//要执行的语句
}

for...of循环,是可以遍历所有数据结构的统一的方法,它可以使用的范围包括数组、Set 和 Map 结构、某些类似数组的对象(比如arguments对象、DOM NodeList 对象)、后文的 Generator 对象,以及字符串。读取的是遍历对象的键值。for...of循环的优点:

  1. 有着同for...in一样的简洁语法,但是没有for...in那些缺点。
  2. 不同于forEach方法,它可以与break、continue和return配合使用。
  3. 提供了遍历所有数据结构的统一操作接口。

代码示例:

const iterable = ['mini', 'mani', 'mo'];for (const value of iterable) {console.log(value);
}

关于JS循环语法的相关内容,就简单到这里了,欢迎大家留言区沟通交流,批评指正。

点击关注,第一时间了解华为云新鲜技术~

小白必看!JS中循环语句大集合相关推荐

  1. JS中for语句的循环的嵌套

    今天说一下JS中for语句的循环嵌套. for语句是JS中十分重要的循环语法. for(表达式1;表达式2;表达式3){for(表达式4;表达式5;表达式6){执行语句块儿}} 这是嵌套写法的基本结构 ...

  2. acm新手小白必看系列之(5)——枚举进阶例题精讲

    acm新手小白必看系列之(5)--枚举进阶例题精讲 1.牛奶碑文(暴力枚举) 小伟暑假期间到大草原旅游,在一块石头上发现了一些有趣的碑文.碑文似乎是一个神秘古老的语言,只包括三个大写字母 C.O 和 ...

  3. 小白必看、手把手教你利用爬虫爬网页

    接下来从网络爬虫的概念.用处与价值和结构等三个方面,让大家对网络爬虫有一个基本的了解. 网络爬虫及其应用 随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战, ...

  4. acm新手小白必看系列之(3)——暴力枚举精讲及例题

    acm新手小白必看系列之(3)--暴力枚举精讲及例题 暴力枚举说白了就是列举所有情况,然后一个一个排查. 这节多说无益直接上题(这节假的精讲) 1·大乐透 在小明曾经玩过的一种对号码的纸牌游戏(乐透) ...

  5. 新手python爬虫代码_新手小白必看 Python爬虫学习路线全面指导

    爬虫是大家公认的入门Python最好方式,没有之一.虽然Python有很多应用的方向,但爬虫对于新手小白而言更友好,原理也更简单,几行代码就能实现基本的爬虫,零基础也能快速入门,让新手小白体会更大的成 ...

  6. java中循环语句_Java语法基础之循环结构语句详解

    一.循环结构 循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循 ...

  7. 智能车小白必看,该竞赛相关宝贵经验+资源借鉴总结1

    文章目录 智能车小白必看,该竞赛相关宝贵经验+资源借鉴总结1 竞赛准备的大体流程 做智能车竞赛的宏观建议整合 摄像头组的具体建议 学习资源链接 后记 经验参考来源 智能车小白必看,该竞赛相关宝贵经验+ ...

  8. 如何选择一台高性能计算机,【小白必看】如何选购电脑?

    原标题:[小白必看]如何选购电脑? 作为21世纪现代人,电脑早就成为我们生活和办公的"标配"了!工(wang)作(yin)狂(shao)人(nian)质量君也是一天都离不开它. 但 ...

  9. centos7 mysql创建表_CentOS7 MySQL数据库入门 小白必看

    昨天网盾科技发布的一篇关于CentOS7配置ssh的文章,有很多小伙伴都收藏了,想必是对大家很有帮助,那么今天网盾科技再给大家分享一篇关于CentOS7配置MySQL数据库入门的文章,小白必看哟! l ...

最新文章

  1. Go中协程间通信的方式Sync.Cond
  2. 实现O(1)时间复杂度带有min和max 函数的栈
  3. 力压清华北大!深圳大学,世界第三!国际专利申请最新榜单出炉
  4. numpy一维数组的反转/倒序
  5. php 商城套餐搭配功能,速卖通商品搭配套餐功能已上线!设置速卖通搭配套餐仅需三步...
  6. powershell设置了权限依旧无法运行脚本_Power Shell折腾记
  7. JavaScript异常处理
  8. 拖拽之路(一):自定义QListWidget实现美观的拖拽样式(拖拽即选中)
  9. 四边形内接于圆定理_中考数学提分36计之第19计思维模型助你轻松搞定圆问题,提分必备...
  10. 目标检测(二十)--Mask R-CNN
  11. ACL'22 | 一文解读复旦黄萱菁、邱锡鹏等老师NLP实验室的12篇长文
  12. JAVA学习:坦克大战(怀旧版)游戏开发代码
  13. linux备份数据库
  14. 干货篇 | 当CPU使用率达到100%该怎么办?
  15. SpringBoot整合shiro实现细粒度动态权限
  16. 如何写一个简单的时钟表盘(qt)
  17. Bailian——4074积水量
  18. 女生到社会上会遇到比学校更优秀的男生,而男生很难找到比在学校更好的女生。是吗?
  19. 中国前十软件公司招聘官网聚合
  20. 支付宝:批量付款到支付宝账户有密接口

热门文章

  1. 前端:JS/20/数组(数组的概念,数组元素,数组索引,数组元素的访问,数组的长度,数组的创建方法,数组的操作,实例:使用数组保存个人信息,实例:求数组所有值的平均值,数组对象的length属性)
  2. 在实践中总结出的几条 CodeReview 实用经验
  3. node事件循环 EventEmitter 异步I/O Buffer缓冲区 模块
  4. 服务器端的JavaScript
  5. String.fromCodePoint()方法
  6. oracle数据泵导入导出_【软件】R语言数据导入与导出
  7. 第四周Java学习总结
  8. fedora27 GPaste
  9. Servlet简单实现请求分发(类thinkphp5)
  10. java控制台输出等腰三角形,并且是倒序正序输出【原创】