摘要: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. 第十篇:vue.js for循环语句(大作业进行时)

    Vue.js 循环语句 <div id="app"> <ol> <li v-for="site in sites"> /*f ...

  2. 2019最新WEB前端开发小白必看的学习路线(附学习视频教程)

    2019最新WEB前端开发小白必看的学习路线(附学习视频教程).web前端自学之路:史上最全web学习路线,HTML5是万维网的核心语言,标准通用标记语言下的一个应用超文本标记语言(HTML)的第五次 ...

  3. js中退出语句break,continue和return 比较

    js中退出语句break,continue和return 比较 在 break,continue和return 三个关键字中, break,continue是一起的,return 是函数返回语句,但是 ...

  4. js中退出语句break,continue和return 比较(转)

    原链接:http://blog.163.com/ued_er/blog/static/199703159201210283107315/ js中退出语句break,continue和return 比较 ...

  5. 【JS中循环嵌套常见的六大经典例题+六大图形题,你知道哪几个?】

    首先,了解一下循环嵌套的特点:外层循环转一次,内层循环转一圈. 在上一篇随笔中详细介绍了JS中的分支结构和循环结构,我们来简单的回顾一下For循环结构: 1.for循环有三个表达式,分别为: ①定义循 ...

  6. 小白必看Python视频基础教程

    Python的排名从去年开始就借助人工智能持续上升,现在它已经成为了第一名.Python的火热,也带动了工程师们的就业热.可能你也想通过学习加入这个炙手可热的行业,可以看看Python视频基础教程,小 ...

  7. Vue.js:循环语句

    ylbtech-Vue.js:循环语句 1.返回顶部 1. 循环语句 循环使用 v-for 指令. v-for 指令需要以 site in sites 形式的特殊语法, sites 是源数据数组并且 ...

  8. “全栈2019”Java第二十七章:流程控制语句中循环语句for

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  9. “全栈2019”Java第二十六章:流程控制语句中循环语句do-while

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  10. “全栈2019”Java第二十五章:流程控制语句中循环语句while

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

随机推荐

  1. 手撕Vue-数据驱动界面改变下

    经过上一篇的介绍,数据驱动界面改变 v-model 的双向绑定已告一段落, 剩余的就以这篇文章来完成. 首先完成我们的 v-html,v-text, 其实很简单,就是将我们之前的 v-model 创建 ...

  2. 【羚珑AI智绘营】分分钟带你拿捏SD中的色彩控制

    导言 颜色控制一直是AIGC的难点,prompt会污染.img2img太随机- 今天带来利用controlnet,实现对画面颜色的有效控制.都说AIGC是抽卡,但对把它作为工具而非玩具的设计师,必须掌 ...

  3. `.NET Web`新人入门必学项目`EarthChat`

    .NET Web新人入门必学项目EarthChat EarthChat是一个基于.NET 7的实战项目,EarthChat提供了很多的最佳实践,EarthChat的目标也是成为一个很多人都喜欢的大型聊 ...

  4. 【Go 编程实践】从零到一:创建、测试并发布自己的 Go 库

    为什么需要开发自己的 Go 库 在编程语言中,包(Package)和库(Library)是代码组织和复用的重要工具.在 Go 中,包是代码的基本组织单位,每个 Go 程序都由包构成.包的作用是帮助组织 ...

  5. Redis Functions 介绍之一

    Redis提供了编程接口(programming interface)可以让你在Redis服务器端执行客户的脚本. 一个重大的变化就是从Redis 7开始,你可以选择使用Redis Functions ...

  6. WPF --- TextBox的输入校验

    引言 在WPF应用程序开发中,数据校验是确保用户输入数据的正确性和完整性的重要一环. 之前在做一些参数配置功能时,最是头疼各种参数校验,查阅一些资料后,我总结了数据校验方式有两种: Validatio ...

  7. C/C++ 常用加密与解密算法

    计算机安全和数据隐私是现代应用程序设计中至关重要的方面.为了确保数据的机密性和完整性,常常需要使用加密和解密算法.C++是一种广泛使用的编程语言,提供了许多加密和解密算法的实现.本文将介绍一些在C++ ...

  8. 基于 TCP 协议写的 FTP 管理小工具

    这是一个FTP(文件传输协议)管理工具,能够支持文件上传下载以及操作服务端的文件. 该工具由客户端和服务端组成.客户端与服务端通过Socket连接实现通信,客户端发送命令,服务端解析并执行相应的操作. ...

  9. httpclients 和 okhttp 区别

    HttpClient使用介绍使用HttpClient发送请求主要分为以下几步骤: 创建 CloseableHttpClient对象或CloseableHttpAsyncClient对象,前者同步,后者 ...

  10. 7-8次PTA和期末成绩总结

    (1)前言:总结之前所涉及到的知识点.题量.难度等情况 课程成绩统计程序-3在第二次的基础上修改了计算总成绩的方式(修改类结构,将成绩类的继承关系改为组合关系,成绩信息由课程成绩类和分项成绩类组成,课 ...