当前位置:首页 > 文章列表 > 文章 > 前端 > 适合初学者的 JavaScript 循环:学习基础知识

适合初学者的 JavaScript 循环:学习基础知识

来源:dev.to 2024-07-18 08:30:58 0浏览 收藏

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

适合初学者的 JavaScript 循环:学习基础知识


这是一个阴沉的星期一,而你正在工作。我们都知道周一有多令人沮丧,对吧?你的老板走近你并说:“嘿,我周末收到了 300 封未打开的电子邮件。我希望你打开每一封,记下发件人的姓名,然后在完成后删除这些电子邮件。”

如果你尝试手动完成这个任务,看起来会很累。您想到的下一件事可能是在 google 上寻找可以自动化此过程并让您的生活更轻松的软件,对吗?

嗯,我们在编程中也有类似的情况。有时您需要重复执行任务直到完成。你如何解决这个问题?在 javascript 中,我们有所谓的循环。循环使我们能够通过减少完成任务所需的代码量来解决重复的任务。

在本文中,我们将讨论什么是循环,它是如何工作的,以及我们可以用来在程序中应用它的各种方法。

什么是循环?

javascript 中使用循环来轻松执行重复操作。它们基于返回 true 或 false 的条件。

条件是必须传递以保持循环运行的表达式。当指定条件返回 true 值时,循环运行;当返回 false 值时,循环停止。

什么时候需要使用循环?

循环对于执行重复性任务很有用。例如,使用循环可以缩短解决问题所需的代码。它可以节省时间、优化内存使用并提高灵活性。

循环的真正意义不仅仅在于减少代码长度和限制重复。它们在处理数组、对象或其他结构中的数据时也很有帮助。此外,循环通过减少重复代码和提高代码可重用性来促进代码模块化,这使得创建可在项目的不同部分中使用的代码成为可能。

循环类型

循环有两大类:入口控制循环和出口控制循环。

入口控制循环在执行循环体之前评估“循环入口”的条件。如果条件为真,身体就会运行。如果没有,身体就不会运行。 for 和 while 循环是入口控制循环的示例。

退出控制循环重点关注循环体而不是测试条件,确保在评估测试条件之前循环体至少执行一次。退出控制循环的一个很好的例子是 do-while 循环。

让我们看一下入口控制循环的一些示例:

while 循环

while 循环具有以下语法。

while (condition) {
  //  loop's body
}

以下列表解释了 while 循环的功能:

  1. while 循环采用括号内的测试条件。
  2. 程序检查条件以查看是否通过或失败。
  3. 只要满足条件,循环体内的代码就会执行。
  4. 一旦测试条件失败,程序就会终止运行。

下面,我们以 while 循环为例:

let arr = [];
let i = 1;
let number = 5;

while (i <= number) {
arr.push(i)
i++
}
console.log(arr)
  1. 上面的代码片段初始化了“arr”、“i”和“num”变量。
  2. “arr”变量是一个数组,保存通过测试条件的值。
  3. “i”变量在每次迭代后跟踪每个增量。
  4. “number”变量在每次迭代后将“i”的值与其值(5)进行比较。
  5. 只要“i”小于或等于“number”,循环体中的代码就会在每次迭代后将“i”的每个值推送到数组中。
  6. 一旦“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);

现在让我们分解一下这段代码:

  1. 我们初始化了“i”和“num”变量。
  2. 在评估循环条件之前,控制台会记录“i”(1)的值。
  3. 检查条件,每次迭代后“i”的值增加+1。
  4. 一旦“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 循环不会向控制台返回任何结果,为什么会这样呢?

  1. 我们分别将“i”和“num”变量初始化为值5和4。
  2. 条件检查“i”的值是否小于“num”。
  3. 如果为 true,它将记录每个相应的值。
  4. 由于“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" )
}

从上面的代码片段来看,我们一起来分解一下。

  1. 首先,我们将计数器变量“i”初始化为零。
  2. 接下来,我们创建了使代码保持运行的条件语句。
  3. 我们将“i”的值与 100 进行比较,如果通过此测试,则记录“hello world”。
  4. 重复这个过程,每次迭代后计数器都会增加+1。
  5. 计数器的值达到 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);
});

让我们分解一下上面的例子:

  1. 我们用变量名“myarray”初始化了一个数组,并存储了1到5之间的整数。
  2. for-each 数组方法接受三个参数,并对数组应用回调函数。
  3. 这条线; 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学习网公众号,带你了解更多关于的知识点!

版本声明
本文转载于:dev.to 如有侵犯,请联系study_golang@163.com删除
使用vscode将snake_case转换为camelCase使用vscode将snake_case转换为camelCase
上一篇
使用vscode将snake_case转换为camelCase
常用的 Javascript 数组方法
下一篇
常用的 Javascript 数组方法
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    542次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    508次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    497次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    484次学习
查看更多
AI推荐
  • 毕业宝AIGC检测:AI生成内容检测工具,助力学术诚信
    毕业宝AIGC检测
    毕业宝AIGC检测是“毕业宝”平台的AI生成内容检测工具,专为学术场景设计,帮助用户初步判断文本的原创性和AI参与度。通过与知网、维普数据库联动,提供全面检测结果,适用于学生、研究者、教育工作者及内容创作者。
    23次使用
  • AI Make Song:零门槛AI音乐创作平台,助你轻松制作个性化音乐
    AI Make Song
    AI Make Song是一款革命性的AI音乐生成平台,提供文本和歌词转音乐的双模式输入,支持多语言及商业友好版权体系。无论你是音乐爱好者、内容创作者还是广告从业者,都能在这里实现“用文字创造音乐”的梦想。平台已生成超百万首原创音乐,覆盖全球20个国家,用户满意度高达95%。
    33次使用
  • SongGenerator.io:零门槛AI音乐生成器,快速创作高质量音乐
    SongGenerator
    探索SongGenerator.io,零门槛、全免费的AI音乐生成器。无需注册,通过简单文本输入即可生成多风格音乐,适用于内容创作者、音乐爱好者和教育工作者。日均生成量超10万次,全球50国家用户信赖。
    30次使用
  •  BeArt AI换脸:免费在线工具,轻松实现照片、视频、GIF换脸
    BeArt AI换脸
    探索BeArt AI换脸工具,免费在线使用,无需下载软件,即可对照片、视频和GIF进行高质量换脸。体验快速、流畅、无水印的换脸效果,适用于娱乐创作、影视制作、广告营销等多种场景。
    33次使用
  • SEO标题协启动:AI驱动的智能对话与内容生成平台 - 提升创作效率
    协启动
    SEO摘要协启动(XieQiDong Chatbot)是由深圳协启动传媒有限公司运营的AI智能服务平台,提供多模型支持的对话服务、文档处理和图像生成工具,旨在提升用户内容创作与信息处理效率。平台支持订阅制付费,适合个人及企业用户,满足日常聊天、文案生成、学习辅助等需求。
    36次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码