前端基础(八)_JavaScript循环(for循环、for-in循环、for-of循环、while、do-while 循环、break 与 continue)

简介: 本文介绍了JavaScript中的循环语句,包括for循环、for-in循环、for-of循环、while循环、do-while循环以及break和continue的使用。

让一段特定的代码执行指定的次数。

一、for循环

1.1、for的语法及简单使用

语法 :

for( 表达式 1;条件表达式 2;表达式 3){
    条件成立执行的代码块 }
for(初始化循环变量;判断条件(循环结束的条件);更新循环变量){
   
循环体
}

例1:控制台输出 1-20

for(var i = 1;i <= 20;i++){
   
    console.log(i);
}

在这里插入图片描述
上面的写法还可以这样写:

var i = 1
for(;i <= 20;){
   
    console.log(i);
    ++i
}

在这里插入图片描述

1.2、for循环的执行过程

for(var i = 1;i <= 10;i++){
   
    console.log(i);
}

上面的循环的执行过程为:
for(1. 初始化循环变量;2. 判断条件(循环结束的条件);4. 更新循环变量){
3. 循环体
}
执行步骤 :

  1. 初始化循环变量 i= 1;
  2. 判断,判断条件是否成立 1<=10;
    a. 条件成立,执行循环体,然后到第 3 步;
    b. 条件不成立,结束循环;
  3. 更新循环变量 i = i + 1;
  4. 回到第二步开始执行。
    循环三要素:初始化循环变量,跳出循环的条件,更新循环变量,在循环中必须有结
    束循环的条件,要更新循环变量,否则会成为死循环。

1.3、for循环操作标签

例:给所有的div标签都添加点击事件,并打印当前节点的内容

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>LiuQing</title>
  <style>
    #box {
   
      background-color: red;
    }
  </style>
</head>

<body>
  <div class="Liuqing"> Liuqing1 </div>
  <div class="Liuqing"> Liuqing2 </div>
  <div class="Liuqing"> Liuqing3 </div>
  <div class="Liuqing"> Liuqing4 </div>
  <div class="Liuqing"> Liuqing5 </div>

  <script>
    var Liuqing = document.querySelectorAll('.Liuqing')
    console.log(Liuqing, 'LiuqingLiuqing')
    // 这里目前先使用  let  声明变量
    for (let i = 0; i < Liuqing.length; i++) {
   
      Liuqing[i].onclick = function () {
   
        console.log(Liuqing[i], 'innerHTML')
      }
    }
  </script>
</body>

</html>

在这里插入图片描述
这里点击了Liuqing1、Liuqing3、Liuqing5。

例2:循环生成 10 个标签p添加到第一个div中

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>LiuQing</title>
  <style>
    #box {
   
      background-color: red;
    }
  </style>
</head>

<body>
  <div class="Liuqing"> Liuqing1 </div>
  <div class="Liuqing"> Liuqing2 </div>
  <div class="Liuqing"> Liuqing3 </div>
  <div class="Liuqing"> Liuqing4 </div>
  <div class="Liuqing"> Liuqing5 </div>

  <script>
    var Liuqing = document.querySelectorAll('.Liuqing')
    console.log(Liuqing, 'LiuqingLiuqing')
    // 这里目前先使用  let  声明变量
    for (let i = 0; i < Liuqing.length; i++) {
   
      Liuqing[i].onclick = function () {
   
        console.log(Liuqing[i], 'innerHTML')
      }
    }
    var box = Liuqing[0]
    var boxStr = ''
    for (let i = 0; i < 10; i++) {
   
      boxStr += '<p>我是p</>'
    }
    box.innerHTML = boxStr
  </script>
</body>

</html>

在这里插入图片描述
点击了Liuqing1、Liuqing2。

1.4、for循环嵌套 ( 双重 for 循环 )

例:实现下图所示图形
在这里插入图片描述

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>LiuQing</title>
  <style>
    #box {
   
      background-color: red;
    }
  </style>
</head>

<body>
  <div class="Liuqing"> Liuqing1 </div>
  <div class="Liuqing"> Liuqing2 </div>
  <div class="Liuqing"> Liuqing3 </div>
  <div class="Liuqing"> Liuqing4 </div>
  <div class="Liuqing"> Liuqing5 </div>

  <script>
    var Liuqing1 = document.getElementsByTagName("div")[0];
    Liuqing1.innerHTML = ''
    // 外循环控制行,内循环控制例
    for (var i = 0; i < 5; i++) {
   
      for (var j = 0; j <= i; j++) {
   
        Liuqing1.innerHTML += "*";
      }
      Liuqing1.innerHTML += "<br>";
    }
  </script>
</body>

</html>

在这里插入图片描述

二、for-in循环

for-in 循环是专门为循环对象设置的,因为对象没有长度没有顺序,所以不能使用for 循环。
如果真想的话我们可以使用Object.keys和Object.values获取在进行for循环,这个后续说。
for-in循环可以循环数组和对象,推荐循环对象的时候使用。

语法:

 for( var 键值 in 对象名){
   操作对象}
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>LiuQing</title>
  <style>
    #box {
   
      background-color: red;
    }
  </style>
</head>

<body>
  <div class="Liuqing"> Liuqing1 </div>

  <script>
    const obj = {
   
      name: "LiuQing",
      age: 18,
      sex: '男'
    }
    for (const key in obj) {
   
      console.log(key, "代表obj的属性:name,age,sex")
      console.log(obj[key], "代表obj的属性值:LiuQing,18,男")
    }
  </script>
</body>

</html>

在这里插入图片描述

三、for-of循环

for-of循环不能循环对象!!!,可以循环字符串、数组

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>LiuQing</title>
  <style>
    #box {
   
      background-color: red;
    }
  </style>
</head>

<body>
  <div class="Liuqing"> Liuqing1 </div>

  <script>
    let str = '我是六卿!'
    let arr = ['L', 'i', 'u', 'Q', 'i', 'n', 'g']
    for (const key of str) {
   
      console.log(key, '对应下边的值1')
    }
    console.log("==================")
    for (const key of arr) {
   
      console.log(key, '对应下边的值2')
    }
    console.log("==================")
    console.log(arr.join(''))
  </script>
</body>

</html>

在这里插入图片描述

四、while、do-while 循环

4.1、while

while 循环先判断后执行

例1:打印 1-20 的数字
var a = 1; // 初始化循环变量
while (a <= 20 ){ // 结束循环的条件
console.log(a);
a++; // 更新循环变量
}

执行步骤:初始化循环变量,判断条件,成立执行循环体,更新循环变量,判断条件,不成立结束。
在这里插入图片描述

4.2、do-while

跟 while 循环是一样的,只是 do-while 先执行,后判断。
例2:

var a = 0;
do {
   
console.log(a);
}while (a > 0);

两者的区别,只在第一次条件不成立的时候有区别,do-while 会执行一次,因为是先执行后判断。
在这里插入图片描述

五、break 与 continue

break 与 continue 都是在循环中,中止循环的操作。break 是结束循环,后面的循环都不再执行。continue 是结束本次循环,即本次循环中 continue 以后代码都不再执行,直接执行下一次循环。

break:终止当前循环体;
continue:跳出本次循环,继续下次循环;

例1:获取到数组中第一个偶数能被 2 整除

    var arr = [1, 6, 9, 3, 4, 7, 5];
    for (var k = 0; k < arr.length; k++) {
    // 遍历
      if (arr[k] % 2 === 0) {
   
        console.log(arr[k]);
        // 在中途结束循环
        // break; // 跳出循环 ( 结束循环 )
        continue;// 跳出本次循环 本次循环这行代码后面的语句不再执行,直接执行下一次循环
      }
    }

continue:
在这里插入图片描述
break:
在这里插入图片描述
以前写的:
JS循环for、for…of、for…in

目录
相关文章
|
12月前
|
JavaScript 前端开发 API
|
资源调度 JavaScript 前端开发
前端开发必备!Node.js 18.x LTS保姆级安装教程(附国内镜像源配置)
本文详细介绍了Node.js的安装与配置流程,涵盖环境准备、版本选择(推荐LTS版v18.x)、安装步骤(路径设置、组件选择)、环境验证(命令测试、镜像加速)及常见问题解决方法。同时推荐开发工具链,如VS Code、Yarn等,并提供常用全局包安装指南,帮助开发者快速搭建高效稳定的JavaScript开发环境。内容基于官方正版软件,确保合规性与安全性。
13232 23
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
898 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
|
消息中间件 JavaScript 前端开发
最细最有条理解析:事件循环(消息循环)是什么?为什么JS需要异步
度一教育的袁进老师谈到他的理解:单线程是异步产生的原因,事件循环是异步的实现方式。 本质是因为渲染进程因为计算机图形学的限制,只能是单线程。所以需要“异步”这个技术思想来解决页面阻塞的问题,而“事件循环”是实现“异步”这个技术思想的最主要的技术手段。 但事件循环并不是全部的技术手段,比如Promise,虽然受事件循环管理,但是如果没有事件循环,单一Promise依然能实现异步不是吗? 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您
|
JavaScript 前端开发 Java
springboot解决js前端跨域问题,javascript跨域问题解决
本文介绍了如何在Spring Boot项目中编写Filter过滤器以处理跨域问题,并通过一个示例展示了使用JavaScript进行跨域请求的方法。首先,在Spring Boot应用中添加一个实现了`Filter`接口的类,设置响应头允许所有来源的跨域请求。接着,通过一个简单的HTML页面和jQuery发送AJAX请求到指定URL,验证跨域请求是否成功。文中还提供了请求成功的响应数据样例及请求效果截图。
323 3
springboot解决js前端跨域问题,javascript跨域问题解决
|
缓存 JavaScript 前端开发
JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用
本文深入讲解了 JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用。
875 5
|
JSON 前端开发 JavaScript
聊聊 Go 语言中的 JSON 序列化与 js 前端交互类型失真问题
在Web开发中,后端与前端的数据交换常使用JSON格式,但JavaScript的数字类型仅能安全处理-2^53到2^53间的整数,超出此范围会导致精度丢失。本文通过Go语言的`encoding/json`包,介绍如何通过将大整数以字符串形式序列化和反序列化,有效解决这一问题,确保前后端数据交换的准确性。
451 4
|
缓存 前端开发 JavaScript
JavaScript前端路由的实现原理及其在单页应用中的重要性,涵盖前端路由概念、基本原理、常见实现方式
本文深入解析了JavaScript前端路由的实现原理及其在单页应用中的重要性,涵盖前端路由概念、基本原理、常见实现方式(Hash路由和History路由)、优点及挑战,并通过实际案例分析,帮助开发者更好地理解和应用这一关键技术,提升用户体验。
710 1
|
资源调度 前端开发 JavaScript
vite3+vue3 实现前端部署加密混淆 javascript-obfuscator
【11月更文挑战第10天】本文介绍了在 Vite 3 + Vue 3 项目中使用 `javascript-obfuscator` 实现前端代码加密混淆的详细步骤,包括安装依赖、创建混淆脚本、修改 `package.json` 脚本命令、构建项目并执行混淆,以及在 HTML 文件中引用混淆后的文件。通过这些步骤,可以有效提高代码的安全性。
1718 2
|
前端开发 JavaScript 安全
vite3+vue3 实现前端部署加密混淆 javascript-obfuscator
【11月更文挑战第7天】本文介绍了在 Vite 3 + Vue 3 项目中使用 `javascript-obfuscator` 实现前端代码加密混淆的详细步骤。包括项目准备、安装 `javascript-obfuscator`、配置 Vite 构建以应用混淆,以及最终构建项目进行混淆。通过这些步骤,可以有效提升前端代码的安全性,防止被他人轻易分析和盗用。
3103 0

热门文章

最新文章