适合初学者的 JavaScript 循环:学习基础知识
大家好,今天本人给大家带来文章《适合初学者的 JavaScript 循环:学习基础知识》,文中内容主要涉及到,如果你对文章方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢谢!

这是一个阴沉的星期一,而你正在工作。我们都知道周一有多令人沮丧,对吧?你的老板走近你并说:“嘿,我周末收到了 300 封未打开的电子邮件。我希望你打开每一封,记下发件人的姓名,然后在完成后删除这些电子邮件。”
如果你尝试手动完成这个任务,看起来会很累。您想到的下一件事可能是在 google 上寻找可以自动化此过程并让您的生活更轻松的软件,对吗?
嗯,我们在编程中也有类似的情况。有时您需要重复执行任务直到完成。你如何解决这个问题?在 javascript 中,我们有所谓的循环。循环使我们能够通过减少完成任务所需的代码量来解决重复的任务。
在本文中,我们将讨论什么是循环,它是如何工作的,以及我们可以用来在程序中应用它的各种方法。
什么是循环?
javascript 中使用循环来轻松执行重复操作。它们基于返回 true 或 false 的条件。
条件是必须传递以保持循环运行的表达式。当指定条件返回 true 值时,循环运行;当返回 false 值时,循环停止。
什么时候需要使用循环?
循环对于执行重复性任务很有用。例如,使用循环可以缩短解决问题所需的代码。它可以节省时间、优化内存使用并提高灵活性。
循环的真正意义不仅仅在于减少代码长度和限制重复。它们在处理数组、对象或其他结构中的数据时也很有帮助。此外,循环通过减少重复代码和提高代码可重用性来促进代码模块化,这使得创建可在项目的不同部分中使用的代码成为可能。
循环类型
循环有两大类:入口控制循环和出口控制循环。
入口控制循环在执行循环体之前评估“循环入口”的条件。如果条件为真,身体就会运行。如果没有,身体就不会运行。 for 和 while 循环是入口控制循环的示例。
退出控制循环重点关注循环体而不是测试条件,确保在评估测试条件之前循环体至少执行一次。退出控制循环的一个很好的例子是 do-while 循环。
让我们看一下入口控制循环的一些示例:
while 循环
while 循环具有以下语法。
while (condition) {
// loop's body
}
以下列表解释了 while 循环的功能:
- while 循环采用括号内的测试条件。
- 程序检查条件以查看是否通过或失败。
- 只要满足条件,循环体内的代码就会执行。
- 一旦测试条件失败,程序就会终止运行。
下面,我们以 while 循环为例:
let arr = [];
let i = 1;
let number = 5;
while (i <= number) {
arr.push(i)
i++
}
console.log(arr)
- 上面的代码片段初始化了“arr”、“i”和“num”变量。
- “arr”变量是一个数组,保存通过测试条件的值。
- “i”变量在每次迭代后跟踪每个增量。
- “number”变量在每次迭代后将“i”的值与其值(5)进行比较。
- 只要“i”小于或等于“number”,循环体中的代码就会在每次迭代后将“i”的每个值推送到数组中。
- 一旦“i”的当前值不满足条件,在这种情况下,“i”的值大于“number”(6),循环停止运行。
push() 方法是一个内置的 javascript 函数,它将新项目添加到数组的末尾。
输出
[1, 2, 3, 4, 5]
do while 循环
do-while 循环与 while 循环非常相似; while 和 do-while 循环之间的主要区别在于,do-while 循环确保在评估循环条件之前至少执行一次代码,do-while 循环具有以下语法。
do {
// loop's body
}
while (//condition)
do-while 是退出控制循环的一个很好的例子。这是因为退出控制循环在测试条件之前优先考虑循环体,现在让我们深入研究利用 do-while 循环的实际代码示例。
示例:
let i = 1;
let num = 5;
do {
console.log(i);
i++;
} while (i <= num);
现在让我们分解一下这段代码:
- 我们初始化了“i”和“num”变量。
- 在评估循环条件之前,控制台会记录“i”(1)的值。
- 检查条件,每次迭代后“i”的值增加+1。
- 一旦“i”大于“num”,循环就结束操作。
输出
1 2 3 4 5
虽然 do-while 循环和 while 循环非常相似,但还是有一些细微的差别我们必须注意,让我们再举一个例子来比较一下 while 和 do-while 循环之间的区别。
let i = 5;
let num = 4
while( i < num)
{
console.log(i)
}
上面的 while 循环不会向控制台返回任何结果,为什么会这样呢?
- 我们分别将“i”和“num”变量初始化为值5和4。
- 条件检查“i”的值是否小于“num”。
- 如果为 true,它将记录每个相应的值。
- 由于“i”的初始值超过了“num”的初始值,因此循环永远不会运行。
现在让我们用 do-while 循环来举一个类似的例子。
let i = 5;
let num = 4;
do {
console.log(i)
}
while ( i < num)
输出
5
do-while 循环保证了代码块的执行,它在控制台中返回 5,虽然“i”最初的值比“num”高,但它仍然在控制台中记录一次。此表示向您展示了 do-while 和 while 循环之间的功能差异。
for循环
for 循环是一种独特的循环类型,也是程序员最常用的循环之一,for 循环是根据条件运行代码块特定次数的循环。 for 循环的语法如下。
for (expression1...; expression2....; expression3...{
//code block
}
表达式1:for循环的这一部分也称为初始化区域,它是我们for循环的开始,也是定义计数器变量的区域;计数器变量用于跟踪循环运行的次数并将其存储为值。
expression2:这是循环的第二部分,这部分定义了执行循环的条件语句。
表达式3:这是循环结束的地方;本节中的计数器变量在每次迭代后通过增加或减少条件中指定的值来更新其值。
让我们深入研究使用 for 循环的示例。
for (let i = 0; i < 100; i++) {
console.log("hello world" )
}
从上面的代码片段来看,我们一起来分解一下。
- 首先,我们将计数器变量“i”初始化为零。
- 接下来,我们创建了使代码保持运行的条件语句。
- 我们将“i”的值与 100 进行比较,如果通过此测试,则记录“hello world”。
- 重复这个过程,每次迭代后计数器都会增加+1。
- 计数器的值达到 100 时循环结束。
输出
hello world hello world hello world ... //repeated 97 more times making it 100 "hello world" in total ...
for-each 循环
for-each 循环是 javascript 中的一种方法,它遍历数组并对数组中的每个元素应用回调函数;回调函数只是作为参数传递给函数的另一个函数,回调函数的工作原理是在主函数执行完成后按顺序运行。
让我们检查一下 for-each 循环的基本语法。
array.foreach(function(currentvalue, index, arr))
上面提供的代码解释了 for-each 循环的工作原理。
- 这个循环接受三个参数,分别是当前值、索引和数组。
- 当前值代表数组中元素的当前值。
- 索引是一个可选参数,它告诉您当前元素在该数组中的编号位置。
- arr 是另一个可选参数,它告诉您元素属于哪个数组。
let myarray = [1, 2, 3, 4, 5];
array.foreach((num, index, arr) => {
arr[index] = num * 2;
console.log(array);
});
让我们分解一下上面的例子:
- 我们用变量名“myarray”初始化了一个数组,并存储了1到5之间的整数。
- for-each 数组方法接受三个参数,并对数组应用回调函数。
- 这条线; arr[index] = num * 2 将当前元素的值乘以 2,并将返回值赋给当前元素的索引。
注意,for-each 数组方法不会返回新数组;相反,它修改原始数组并返回它。
输出
[2, 4, 6, 8, 10]
javascript 中的 for...in 和 for...of 循环是什么?
for...in 和 for...of 循环在迭代可迭代对象时非常有用,可迭代对象是指任何能够被循环的元素,可迭代对象的常见示例是数组、字符串、套装等
for... in 和 for... of 在如何迭代/移动对象方面相似,它们之间的主要区别在于它们如何返回值。
for...in 循环
当您需要从对象中提取键/属性以及从父对象中提取相应的属性时,for...in 循环非常有用,for...in 循环有时可能会迭代 a 中的对象方式与在特定对象中定义的方式不同,让我们举一个 for...in 循环的例子。
let namesarray = [];
const studentscores = {
john: 60,
dan: 53,
tricia: 73,
jamal: 45,
jane: 52
}
for(const name in studentscores){
namesarray.push(name);
}
console.log(namesarray);
在上面的例子中,我们定义了一个名为studentscores的对象,其中包含多个学生姓名及其对应的分数,通过使用for...in,我们只能检索到学生的姓名,这些姓名代表了该对象的键studentscores,并使用push()方法将它们存储在数组中。
输出
["john", "dan", "tricia", "jamal", "jane"]
for...of 循环
for...of 循环是一种特殊类型的循环,它迭代可迭代对象的值,例如数组、字符串、映射等,for...of 循环不关心对象的键或属性,而是仅显示值的优先级,for...of 循环无法迭代常规对象,并且会抛出错误,因为它们不可迭代。让我们举一个使用 for..of 循环的例子。
let numArray = [1,2,3,4,5]
for (const value of numArray) {
console.log(value)
}
// 输出 = 1,2,3,4,5
总之,for...in 和 for...of 循环是循环可迭代对象的好方法,主要区别是 for...in 循环返回对象的键,而 for...of 循环仅返回可迭代对象的值。
什么是无限循环以及我们如何避免它?
无限循环是指无限期地持续运行的循环;当循环没有定义的退出条件时,就会发生这种情况。无限循环很危险,因为它们可能会使您的浏览器崩溃并导致程序中出现不需要的操作。
//无限循环示例
而(真){
console.log("继续运行")
}
为了防止程序中出现无限循环,请始终确保循环中定义了退出条件。
结论
非常感谢您阅读本文的结尾,javascript 中的循环是每个开发人员都需要掌握的重要概念,因为它对于创建良好且可优化的程序非常有价值,我相信通过本文您将能够了解在程序中使用循环的基础知识和复杂性。
到这里,我们也就讲完了《适合初学者的 JavaScript 循环:学习基础知识》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!
使用vscode将snake_case转换为camelCase
- 上一篇
- 使用vscode将snake_case转换为camelCase
- 下一篇
- 常用的 Javascript 数组方法
-
- 文章 · 前端 | 1分钟前 |
- Windows11右键新建HTML方法详解
- 164浏览 收藏
-
- 文章 · 前端 | 8分钟前 |
- CSS伪元素颜色设置技巧分享
- 246浏览 收藏
-
- 文章 · 前端 | 10分钟前 |
- MongooseupdateOne更新失败解决方法
- 415浏览 收藏
-
- 文章 · 前端 | 22分钟前 |
- FullCalendar按钮样式自定义教程
- 292浏览 收藏
-
- 文章 · 前端 | 23分钟前 |
- JavaScriptSSE事件应用全解析
- 303浏览 收藏
-
- 文章 · 前端 | 28分钟前 |
- CSS制作简易徽章效果教程
- 393浏览 收藏
-
- 文章 · 前端 | 32分钟前 |
- JSObject.defineProperty使用详解
- 475浏览 收藏
-
- 文章 · 前端 | 33分钟前 |
- JavaScriptReflect全面解析与使用技巧
- 318浏览 收藏
-
- 文章 · 前端 | 34分钟前 |
- 事件循环调试技巧与问题解决方法
- 219浏览 收藏
-
- 文章 · 前端 | 36分钟前 | JavaScript TypeScript 运行时验证 函数类型检查 类型判断方法
- JS函数类型检查与运行时验证方法
- 301浏览 收藏
-
- 文章 · 前端 | 37分钟前 | Polyfill 转译 Babel JavaScript兼容性 core-js
- JavaScript兼容方案解析:Polyfill与转译详解
- 453浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 485次学习
-
- ChatExcel酷表
- ChatExcel酷表是由北京大学团队打造的Excel聊天机器人,用自然语言操控表格,简化数据处理,告别繁琐操作,提升工作效率!适用于学生、上班族及政府人员。
- 3194次使用
-
- Any绘本
- 探索Any绘本(anypicturebook.com/zh),一款开源免费的AI绘本创作工具,基于Google Gemini与Flux AI模型,让您轻松创作个性化绘本。适用于家庭、教育、创作等多种场景,零门槛,高自由度,技术透明,本地可控。
- 3407次使用
-
- 可赞AI
- 可赞AI,AI驱动的办公可视化智能工具,助您轻松实现文本与可视化元素高效转化。无论是智能文档生成、多格式文本解析,还是一键生成专业图表、脑图、知识卡片,可赞AI都能让信息处理更清晰高效。覆盖数据汇报、会议纪要、内容营销等全场景,大幅提升办公效率,降低专业门槛,是您提升工作效率的得力助手。
- 3437次使用
-
- 星月写作
- 星月写作是国内首款聚焦中文网络小说创作的AI辅助工具,解决网文作者从构思到变现的全流程痛点。AI扫榜、专属模板、全链路适配,助力新人快速上手,资深作者效率倍增。
- 4545次使用
-
- MagicLight
- MagicLight.ai是全球首款叙事驱动型AI动画视频创作平台,专注于解决从故事想法到完整动画的全流程痛点。它通过自研AI模型,保障角色、风格、场景高度一致性,让零动画经验者也能高效产出专业级叙事内容。广泛适用于独立创作者、动画工作室、教育机构及企业营销,助您轻松实现创意落地与商业化。
- 3815次使用
-
- JavaScript函数定义及示例详解
- 2025-05-11 502浏览
-
- 优化用户界面体验的秘密武器:CSS开发项目经验大揭秘
- 2023-11-03 501浏览
-
- 使用微信小程序实现图片轮播特效
- 2023-11-21 501浏览
-
- 解析sessionStorage的存储能力与限制
- 2024-01-11 501浏览
-
- 探索冒泡活动对于团队合作的推动力
- 2024-01-13 501浏览

