”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 掌握 JavaScript 中的循环:综合指南

掌握 JavaScript 中的循环:综合指南

发布于2024-11-09
浏览:580

MASTERING LOOPS IN JAVASCRIPT: A COMPREHENSIVE GUIDE

循环是编程的基础:使我们能够用最少的代码执行重复性任务。无论您是刚刚入门的初学者,还是希望精炼知识的经验丰富的开发人员,理解循环都将大大增强您编写高效、干净且有趣的代码的能力。

在本指南中,我们将深入探讨不同类型的循环、它们在流行编程语言中的语法,以及有关何时以及如何有效使用它们的一些提示。

什么是循环?

循环是一种编程结构/函数,它允许我们重复一组指令,直到满足特定条件。通过使用循环,我们可以避免重复、处理大型数据集并有效地机械化任务。 JavaScript 中使用循环来根据条件执行重复任务,此条件通常返回 true 或 false。

常见用例包括:

  • 迭代列表或数组
  • 运行代码一定次数
  • 搜索集合中的特定项目
  • 执行操作直到满足条件

循环类型

  1. For 循环
  2. While 循环
  3. Do-While 循环
  4. For...Of 循环
  5. For...In 循环
  6. 嵌套循环

大多数编程语言中通常存在三种主要类型的循环:

  1. For 循环
  2. While 循环
  3. Do-While 循环

让我们分解每种类型。

  1. For 循环

当您预先知道需要执行一段代码多少次时,可以使用 for 循环,它非常适合迭代数组或集合。

语法(JavaScript 示例):

示例1:

for i in range(5);
    print("Hello, World!");

在此示例中,range(5) 生成从 0 到 4 的序列。循环将运行五次,打印“Hello, World!”每次。

示例2:

for(let i = 0; i 



在此示例中,它指出;如果等于 0 的 i 小于或等于 10,则令 i = 0;增量(i)。这个 JavaScript 运算符( ) 将返回原始值并循环直到 10.

示例3:

for(let i = 0; i 



此示例实际上与前面的示例相同,不同之处在于使用美元符号 ($) 和反引号来提供将文本“For Loop Number”添加到循环的功能。

示例4:

for (let i = 20; i >= 0; i--){
    console.log(i)
}

在此示例中,它指出,令 i = 20;如果 i 大于或等于 0 则减量。自减运算将数字减1,它使用--operator.

何时使用:

当您知道确切的迭代次数或需要迭代列表、字典或数组中的元素时,请使用 for 循环。

  1. While 循环

当事先不知道迭代次数时,使用 while 循环。相反,循环将继续下去,直到不再满足指定的条件。 while 循环的不同之处在于您在外部设置变量。

语法(JavaScript 示例):

示例1:

let i = 0;
while(i 



在这个例子中可以看出变量是在外部设置的,它声明let i = 0;如果 i 小于 10 增量 (i ),则使用美元符号 ($) 和反引号来配置文本“ For While Loop”。

示例2:

let Johnpaul = 0;
while(Johnpaul 



在此示例中,代码将变量 Johnpaul 初始化为 0,并使用 while 循环打印“Hello, World!”直到约翰保罗达到 5。

何时使用:

当迭代次数未知或取决于循环内可能发生变化的条件时,请使用 while 循环。它通常用于需要持续检查的任务,例如等待用户输入。

  1. Do-While 循环

do-while 循环与 while 循环类似,但它保证循环内的代码在测试条件之前至少运行一次。这种类型的循环并非在所有语言(如 Python)中都可用,但在 JavaScript、C 和 Java 中很常见。

语法(JavaScript 示例):

示例1:

let Jude = 0;
do {
     console.log("Hello World!");
     Jude  ;
} while  (Jude 



在这种情况下,“你好,世界!”将在评估条件 (Jude

示例2:

let number = 1;
do {
    console.log("current number is: "   number);
    number  ;
} While (number 



在此示例中,数字初始化/等于 1。然后运行 ​​do 块,打印“当前数字是:”,后跟数字的值。打印后,number 增加 1,只要条件(number

何时使用:

当无论条件如何都需要循环体至少执行一次时,请使用 do-while 循环。它对于在循环内进行初始化的任务很有用。

选择正确的循环

  • For循环:当你知道确切的迭代次数或者需要
    迭代元素。

  • While 循环:当迭代次数未知且取决于
    健康)状况。

  • Do-While 循环:当您希望循环体之前至少执行一次时,即使条件最初为 false。

循环控制:中断和继续

在大多数编程语言中,您都有控制语句来管理循环执行:

  • Break:立即退出循环。
  • 继续:跳过当前迭代并移至下一个迭代。

例子:

for (let i = 0; i 



解释:

  • 循环从0迭代到9。
  • 当i为5时,break停止循环。
  • 如果 i 是偶数,则继续跳到下一次迭代而不打印。
  • 仅打印 5 以下的奇数。

循环的常见错误

  1. 无限循环:当循环的退出条件不为
    时会发生这种情况 遇见了。例如忘记在 while 循环中增加计数器。

  2. 相差一错误:当范围不是
    时,经常发生在 for 循环中 设置正确。

  3. 不必要的循环:使用优化操作或内置函数可以提高效率的循环。

最佳实践

  • 使用描述性变量:使用 i、a 或 b 等通用名称,
    尽管不是描述性的,但也算数。而是使用描述性变量名称
    如约翰、主要、伯爵、裘德、约翰保罗等,如果可能的话,
    特别是对于嵌套循环。

  • 考虑性能:在大型数据库上运行的循环可能会减慢速度
    程序。寻找优化,例如数组
    中的列表推导式 JavaScript 中的方法。

结论

循环是编程中必不可少的工具,使您能够自动执行重复任务并轻松处理复杂的数据库。通过掌握 for、while 和 do-while 循环,您将能够应对各种编码挑战。

希望这有帮助!如果您希望我添加具体的细节或示例,请告诉我,如果您在运行代码时遇到任何困难/问题,请向我询问,我将很乐意提供帮助。

快乐编码!

版本声明 本文转载于:https://dev.to/sopuluchukwu_eze/mastering-loops-in-javascript-a-comprehensive-guide-5del?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 如何干净地删除匿名JavaScript事件处理程序?
    如何干净地删除匿名JavaScript事件处理程序?
    删除匿名事件侦听器将匿名事件侦听器添加到元素中会提供灵活性和简单性,但是当需要删除它们时,可以构成挑战,而无需替换元素本身就可以替换一个问题。 element? element.addeventlistener(event,function(){/在这里工作/},false); 要解决此问题,请考...
    编程 发布于2025-07-01
  • 在PHP中如何高效检测空数组?
    在PHP中如何高效检测空数组?
    在PHP 中检查一个空数组可以通过各种方法在PHP中确定一个空数组。如果需要验证任何数组元素的存在,则PHP的松散键入允许对数组本身进行直接评估:一种更严格的方法涉及使用count()函数: if(count(count($ playerList)=== 0){ //列表为空。 } 对...
    编程 发布于2025-07-01
  • 左连接为何在右表WHERE子句过滤时像内连接?
    左连接为何在右表WHERE子句过滤时像内连接?
    左JOIN CONUNDRUM:WITCHING小时在数据库Wizard的领域中变成内在的加入很有趣,当将c.foobar条件放置在上面的Where子句中时,据说左联接似乎会转换为内部连接。仅当满足A.Foo和C.Foobar标准时,才会返回结果。为什么要变形?关键在于其中的子句。当左联接的右侧值...
    编程 发布于2025-07-01
  • PHP与C++函数重载处理的区别
    PHP与C++函数重载处理的区别
    作为经验丰富的C开发人员脱离谜题,您可能会遇到功能超载的概念。这个概念虽然在C中普遍,但在PHP中构成了独特的挑战。让我们深入研究PHP功能过载的复杂性,并探索其提供的可能性。在PHP中理解php的方法在PHP中,函数超载的概念(如C等语言)不存在。函数签名仅由其名称定义,而与他们的参数列表无关。...
    编程 发布于2025-07-01
  • 如何使用Depimal.parse()中的指数表示法中的数字?
    如何使用Depimal.parse()中的指数表示法中的数字?
    在尝试使用Decimal.parse(“ 1.2345e-02”中的指数符号表示法表示的字符串时,您可能会遇到错误。这是因为默认解析方法无法识别指数符号。 成功解析这样的字符串,您需要明确指定它代表浮点数。您可以使用numbersTyles.Float样式进行此操作,如下所示:[&& && && ...
    编程 发布于2025-07-01
  • 为什么在我的Linux服务器上安装Archive_Zip后,我找不到“ class \” class \'ziparchive \'错误?
    为什么在我的Linux服务器上安装Archive_Zip后,我找不到“ class \” class \'ziparchive \'错误?
    class'ziparchive'在Linux Server上安装Archive_zip时找不到错误 commant in lin ins in cland ins in lin.11 on a lin.1 in a lin.11错误:致命错误:在... cass中找不到类z...
    编程 发布于2025-07-01
  • 如何使用组在MySQL中旋转数据?
    如何使用组在MySQL中旋转数据?
    在关系数据库中使用mySQL组使用mySQL组进行查询结果,在关系数据库中使用MySQL组,转移数据的数据是指重新排列的行和列的重排以增强数据可视化。在这里,我们面对一个共同的挑战:使用组的组将数据从基于行的基于列的转换为基于列。 Let's consider the following ...
    编程 发布于2025-07-01
  • 如何使用node-mysql在单个查询中执行多个SQL语句?
    如何使用node-mysql在单个查询中执行多个SQL语句?
    在node-mysql node-mysql文档最初出于安全原因最初禁用多个语句支持,因为它可能导致SQL注入攻击。要启用此功能,您需要在创建连接时将倍增设置设置为true: var connection = mysql.createconnection({{multipleStatement:...
    编程 发布于2025-07-01
  • 如何在Java字符串中有效替换多个子字符串?
    如何在Java字符串中有效替换多个子字符串?
    在java 中有效地替换多个substring,需要在需要替换一个字符串中的多个substring的情况下,很容易求助于重复应用字符串的刺激力量。 However, this can be inefficient for large strings or when working with nu...
    编程 发布于2025-07-01
  • 为什么不使用CSS`content'属性显示图像?
    为什么不使用CSS`content'属性显示图像?
    在Firefox extemers属性为某些图像很大,&& && && &&华倍华倍[华氏华倍华氏度]很少见,却是某些浏览属性很少,尤其是特定于Firefox的某些浏览器未能在使用内容属性引用时未能显示图像的情况。这可以在提供的CSS类中看到:。googlepic { 内容:url(&#...
    编程 发布于2025-07-01
  • 如何在Java的全屏独家模式下处理用户输入?
    如何在Java的全屏独家模式下处理用户输入?
    Handling User Input in Full Screen Exclusive Mode in JavaIntroductionWhen running a Java application in full screen exclusive mode, the usual event ha...
    编程 发布于2025-07-01
  • 在GO中构造SQL查询时,如何安全地加入文本和值?
    在GO中构造SQL查询时,如何安全地加入文本和值?
    在go中构造文本sql查询时,在go sql queries 中,在使用conting and contement和contement consem per时,尤其是在使用integer per当per当per时,per per per当per. [&​​&&&&&&&&&&&&&&&默元组方法在...
    编程 发布于2025-07-01
  • FastAPI自定义404页面创建指南
    FastAPI自定义404页面创建指南
    response = await call_next(request) if response.status_code == 404: return RedirectResponse("https://fastapi.tiangolo.com") else: ...
    编程 发布于2025-07-01
  • 如何在其容器中为DIV创建平滑的左右CSS动画?
    如何在其容器中为DIV创建平滑的左右CSS动画?
    通用CSS动画,用于左右运动 ,我们将探索创建一个通用的CSS动画,以向左和右移动DIV,从而到达其容器的边缘。该动画可以应用于具有绝对定位的任何div,无论其未知长度如何。问题:使用左直接导致瞬时消失 更加流畅的解决方案:混合转换和左 [并实现平稳的,线性的运动,我们介绍了线性的转换。这...
    编程 发布于2025-07-01
  • 我可以将加密从McRypt迁移到OpenSSL,并使用OpenSSL迁移MCRYPT加密数据?
    我可以将加密从McRypt迁移到OpenSSL,并使用OpenSSL迁移MCRYPT加密数据?
    将我的加密库从mcrypt升级到openssl 问题:是否可以将我的加密库从McRypt升级到OpenSSL?如果是这样,如何?答案:是的,可以将您的Encryption库从McRypt升级到OpenSSL。可以使用openssl。附加说明: [openssl_decrypt()函数要求iv参...
    编程 发布于2025-07-01

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3