15 JavaScript学习:循环

JavaScript循环语句概念和分类

在这里插入图片描述

JavaScript中的循环语句用于重复执行特定的代码块,直到指定的条件不再满足。下面是JavaScript中常用的循环语句以及它们的概念和分类:

  1. for 循环:for循环通过指定起始条件、循环条件和递增/递减步长来进行迭代。它适用于已知迭代次数的情况。

    for (let i = 0; i < 5; i++) {// 执行代码块
    }
    
  2. while 循环:while循环在每次迭代之前检查循环条件。只有当条件为真时,循环体内的代码才会执行。它适用于不确定迭代次数的情况。

    while (condition) {// 执行代码块
    }
    
  3. do…while 循环:与while循环类似,不同之处在于do…while循环会先执行一次代码块,然后再检查循环条件是否满足。它确保循环体内的代码至少被执行一次。

    do {// 执行代码块
    } while (condition);
    
  4. for…in 循环:for…in循环用于遍历对象的可枚举属性,对数组来说也可以使用,但不推荐。

    for (let key in object) {// 执行代码块
    }
    
  5. for…of 循环:for…of循环用于遍历可迭代对象(如数组、字符串、Map、Set等)的元素。

    for (let element of iterable) {// 执行代码块
    }
    

循环语句的选择取决于具体的需求和情况。通常来说,for循环适用于已知迭代次数的情况,while和do…while适用于不确定迭代次数的情况,而for…in和for…of适用于遍历集合或对象的情况。

while循环

在这里插入图片描述

在JavaScript中,while循环是一种常用的循环语句,适用于当条件为真时重复执行代码块。while循环的结构如下:

while (condition) {// 执行代码块
}
  • 首先,判断condition是否为真(即条件是否满足)。
  • 如果条件为真,则执行循环体内的代码块。
  • 执行完毕后再次检查条件,如果仍然为真,则继续重复以上步骤直至条件为假。

以下是一个简单的示例,展示了如何使用while循环来计算1到5的和:

let sum = 0;
let i = 1;while (i <= 5) {sum += i;i++;
}console.log(sum); // 输出:15

在这个示例中,我们初始化变量sum为0,变量i为1。然后通过while循环,每次迭代将i加到sum中,并递增i,直到i超过5时循环结束。最终输出的结果为1到5的和为15。

需要注意的是,在使用while循环时需要小心避免无限循环,即条件永远为真导致循环无法停止。确保在循环体内有递增或递减的步骤,以让条件在某个时刻变为假。

do…while循环

do...while 循环是 JavaScript 中的另一种常见循环语句,它与 while 循环类似,但有一个关键区别:do...while 循环会先执行一次代码块,然后再检查循环条件是否满足。这确保了循环体内的代码至少被执行一次。do...while 循环的结构如下:

do {// 执行代码块
} while (condition);
  • 首先,执行循环体内的代码块。
  • 执行完毕后,检查 condition 是否为真。
  • 如果条件为真,则继续重复执行循环体内的代码块。
  • 如果条件为假,则循环结束。

以下是一个简单的示例,演示了如何使用 do...while 循环来计算1到5的和:

let sum = 0;
let i = 1;do {sum += i;i++;
} while (i <= 5);console.log(sum); // 输出:15

在这个示例中,无论条件是否满足,循环体内的代码块至少会执行一次。然后,通过检查条件 i <= 5,确定是否继续执行循环。

do...while 循环通常用于需要至少执行一次循环体内代码的情况,然后根据条件决定是否继续执行。与 while 循环相比,do...while 循环在执行循环体前先检查条件,因此即使条件一开始就不满足,循环体也会执行一次。

for…i循环

for 循环是 JavaScript 中最常用的循环语句之一,它允许在一定次数的循环中重复执行代码块。for 循环的结构如下:

for (initialization; condition; iteration) {// 执行代码块
}
  • initialization:在循环开始前执行的表达式,通常用于初始化计数器或者声明变量。
  • condition:在每次循环迭代前被求值的表达式。如果该表达式的值为 true,则继续循环;如果为 false,则退出循环。
  • iteration:在每次循环之后执行的表达式,通常用于递增或递减计数器。

以下是一个简单的示例,演示了如何使用 for 循环来计算1到5的和:

let sum = 0;for (let i = 1; i <= 5; i++) {sum += i;
}console.log(sum); // 输出:15

在这个示例中,for 循环首先初始化变量 i 为1,然后在每次循环迭代时检查 i <= 5 是否为真,如果为真则执行循环体内的代码块,并递增 i。当 i 超过5时,循环结束。

for 循环通常用于已知循环次数的情况下,因为其结构明确地指定了初始化、条件和迭代步骤。相比之下,whiledo...while 循环更适合在条件为真时重复执行代码块,或者在需要至少执行一次循环体的情况下使用。

for…in循环

for...in 循环是 JavaScript 中用于遍历对象属性的一种循环语句。它会枚举对象的可枚举属性,并对每个属性执行指定的代码块。for...in 循环的结构如下:

for (variable in object) {// 执行代码块
}
  • variable:在每次循环迭代中,将会赋值为当前属性的名称。
  • object:要遍历的对象。

以下是一个简单的示例,演示了如何使用 for...in 循环遍历对象的属性:

let person = {name: 'Alice',age: 30,gender: 'female'
};for (let key in person) {console.log(key + ': ' + person[key]);
}

在这个示例中,for...in 循环遍历了 person 对象的所有属性,对每个属性执行了一段代码,输出了属性名和属性值。

需要注意的是,for...in 循环不仅会遍历对象自身的可枚举属性,还会遍历对象的原型链上的可枚举属性。因此,在使用 for...in 循环时,通常需要通过 hasOwnProperty 方法来检查属性是否是对象自身的属性,以避免遍历到继承的属性。

for...in 循环通常用于遍历对象的属性,特别是在处理未知数量的属性时非常实用。但在遍历数组时,推荐使用传统的 for 循环或者 forEach 方法。

for…of循环

for...of 循环是 JavaScript 中用于遍历可迭代对象的一种循环语句。它可以遍历数组、字符串、Map、Set 等可迭代对象,并对每个元素执行指定的代码块。for...of 循环的结构如下:for (variable of iterable) {// 执行代码块
}- `variable`:在每次循环迭代中,将会赋值为当前元素的值。
- `iterable`:要遍历的可迭代对象。以下是一个简单的示例,演示了如何使用 for...of 循环遍历数组:let arr = [1, 2, 3, 4, 5];for (let element of arr) {console.log(element);
}在这个示例中,for...of 循环遍历了数组 arr 的所有元素,并对每个元素执行了一段代码,输出了数组中的每个元素的值。需要注意的是,for...of 循环只能遍历可迭代对象的值,而不能直接访问对象的键。如果需要遍历对象的键值对,可以使用 for...in 循环或者 Object.entries 方法。for...of 循环通常用于遍历数组或其他可迭代对象的值,相比传统的 for 循环,它的语法更加简洁清晰,并且可以避免下标的管理。但需要注意的是,for...of 循环无法遍历普通的对象,因为普通对象不是可迭代的。

比较continue和break

continuebreak 是两种常用的控制流程的语句,它们用于在循环中进行条件控制和流程控制。

  1. continue语句:

    • continue 语句执行时,它会立即停止当前循环的迭代,并跳到下一次迭代。
    • forwhiledo...while 循环中,当 continue 语句执行时,循环会跳过当前迭代中的剩余代码,并开始下一次迭代。
    • continue 主要用于在不满足特定条件时跳过当前循环迭代,继续执行下一次迭代。
    • 通常用于处理特定条件下的特殊情况,或者遍历数组、对象等数据结构时跳过某些元素的处理。
  2. break语句:

    • break 语句执行时,它会立即终止当前所在的循环,并跳出该循环的执行流程,继续执行循环后面的代码。
    • forwhiledo...while 循环中,当 break 语句执行时,循环会立即停止执行,程序流程会跳出该循环,执行循环后面的代码。
    • break 主要用于在满足某些条件时立即终止循环的执行,提前跳出循环。
    • 通常用于在搜索特定条件或达到特定情况时停止循环,或者遍历数组、对象等数据结构时满足某个条件就终止循环。

比较:

  • continue 用于跳过当前迭代,继续执行下一次迭代;而 break 用于立即终止当前循环,跳出循环体。
  • continue 适用于特定条件下需要跳过某些迭代的情况,而 break 适用于需要提前结束整个循环的情况。
  • 在某些情况下,continuebreak 可以结合使用,根据不同的条件进行不同的控制流程。

比较for和while

forwhile 是 JavaScript 中两种常见的循环结构,它们都用于重复执行一段代码,但在语法和使用上有一些区别。

  1. for 循环

    • for 循环通常用于已知循环次数的情况,它的语法结构包括初始化、条件判断和迭代器。

    • 语法结构:

      for (初始化; 条件判断; 迭代器) {// 执行代码块
      }
      
    • 初始化:循环开始前执行的语句,通常用于初始化计数器或设置初始条件。

    • 条件判断:在每次迭代开始前都会检查的条件,如果条件为真,则继续执行循环体内的代码块;如果条件为假,则结束循环。

    • 迭代器:在每次迭代结束后执行的语句,通常用于更新计数器或迭代器变量。

  2. while 循环

    • while 循环用于在条件为真时重复执行一段代码,它的语法结构只包括条件判断。

    • 语法结构:

      while (条件判断) {// 执行代码块
      }
      
    • 条件判断:在每次迭代开始前都会检查的条件,如果条件为真,则继续执行循环体内的代码块;如果条件为假,则结束循环。

比较:

  • for 循环适用于已知循环次数的情况,例如遍历数组或执行固定次数的操作。
  • while 循环适用于条件未知、需要在满足特定条件时重复执行的情况,例如处理用户输入或实现动态条件下的循环。
  • for 循环的结构更加紧凑,适用于需要在有限次数内迭代的情况;而 while 循环则更加灵活,适用于处理未知次数的迭代。
  • 通常情况下,for 循环用于遍历数组等已知长度的数据结构,而 while 循遍历只关注条件是否满足,不关注循环长度。

关注我,不迷路,共学习,同进步

关注我,不迷路,共学习,同进步

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/650314.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT全方位指导:学术论文写作从零开始,轻松搞定高质量论文!

目录 文末福利 一、论文选题的深度探讨 二、撰写摘要的艺术 三、关键词的精选 四、引言的构建 五、正文的结构设计 六、撰写结论的策略 七、致谢的编写 八、附录的有效利用 九、参考文献的整理 文末有福利哦 撰写一篇高质量的学术论文是一项既复杂又耗时的任务。这个…

【YOLOv8】隐藏预测实例分割的目标类别和置信度信息

目录 &#x1f340;&#x1f340;需求 &#x1f337;&#x1f337;解决方案 &#x1f349;&#x1f349;修改代码 整理不易&#xff0c;欢迎一键三连&#xff01;&#xff01;&#xff01; 送你们一条美丽的--分割线-- &#x1f340;&#x1f340;需求 需要从上图变成下图&…

pytest参数化数据驱动(数据库/execl/yaml)

常见的数据驱动 数据结构&#xff1a; 列表、字典、json串 文件&#xff1a; txt、csv、excel 数据库&#xff1a; 数据库链接 数据库提取 参数化&#xff1a; pytest.mark.parametrize() pytest.fixture()…

【JAVA】阿里技术官耗时三个月整理的Java核心知识点

在裁员风波的席卷之下&#xff0c;IT行业弥漫着浓厚的焦虑和不安。面对如此动荡的环境&#xff0c;一个共识日益凸显&#xff1a;提升个人价值至关重要。 这不仅仅是指薪资上的数字增长&#xff0c;更重要的是在职场中、在专业领域、在技术上不断取得突破&#xff0c;并塑造自…

力扣HOT100 - 200. 岛屿数量

解题思路&#xff1a; 岛屿题目一般使用dfs。 1.判断是否越界 2.用0&#xff0c;1&#xff0c;2三个状态标识当前格子的状态&#xff08;三个状态比两个状态更清晰&#xff09; 3.向周围四个方向遍历 class Solution {public int numIslands(char[][] grid) {int cnt 0;fo…

如何在PostgreSQL中创建并使用窗口函数来进行复杂的分析查询?

文章目录 解决方案1. 了解窗口函数的基本概念2. 常用的窗口函数3. 使用示例示例 1&#xff1a;计算每行销售数据的累计销售额示例 2&#xff1a;计算每行销售数据相对于前一行销售额的增长率 结论 PostgreSQL 提供了一套强大的窗口函数&#xff08;Window Functions&#xff09…

用Python绘制了几张有趣的可视化图表

流程图存在于我们生活的方方面面&#xff0c;对于我们追踪项目的进展&#xff0c;做出各种事情的决策都有着巨大的帮助&#xff0c;而对于的Python而言呢&#xff0c;绘制流程图也是十分轻松的&#xff0c;今天小编就来为大家介绍两个用于绘制流程图的模块&#xff0c;我们先来…

FebHost:注册国外域名优先考虑可用性还是成本?

在选择域名后缀时&#xff0c;应该优先考虑可用性还是成本&#xff1f;这主要取决于您的具体情况。这两个因素都很重要&#xff0c;您应根据自己的需求进行权衡。 可用性方面&#xff1a;热门的域名后缀&#xff0c;如.com和.net&#xff0c;通常需求量较大&#xff0c;因此可…

1.C++入门(上)

目录 1.C关键字 2.命名空间 作用域方面的优化 a.命名空间定义 b.命名空间使用 3.C 输入&输出 1.C关键字 C有63个关键字&#xff0c;C语言有32个关键字&#xff0c;存在重叠如荧光笔标出 2.命名空间 作用域方面的优化 如果变量&#xff0c;函数和类的名称都存在于全…

(超全)python图像处理详细解析(1)

图像处理 skimage包的子模块1.读取图像2.图像灰度处理3.加载程序自带图像4.查看存储路径5.保存图片6.图片信息7.输出小猫图片的G通道中的第20行30行列的像素值8.显示红色单通道图片9.对小猫图片添加椒盐噪声10.高斯去噪11.中值滤波去噪12.随机生成噪声点13.对小猫图像进行裁剪1…

平抑风电波动的电-氢混合储能容量优化配置

这篇论文中的EMD分解法在非线性扰动信号分解上优于小波分解法,EMD分解出来的imf各频次信号,继而利用C2F实现信号重构,根据最大波动量限值剔除出需要储能平抑的波动量,继而用超级电容实现平抑(论文中用的碱水电解槽+燃料电池我认为有很多个点可以佐证不合适,但是电制氢是热…

数据库工程师的工作职责(合集)

数据库工程师的工作职责1 职责&#xff1a; 1. 日常数据库的基本安装&#xff0c;维护&#xff0c;升级&#xff0c;监控的; 2. 配合研发部门进行数据库设计支持&#xff0c;协助开发、设计和进行SQL语言优化; 3. 配合相关部门数据库相关的任务&#xff0c;比如数据导入导出&am…