JavaScript 循环方法详解
在编程中,循环是一种重复执行代码块的机制,直到满足某个条件为止。JavaScript 提供了多种循环结构来帮助我们实现这一功能。以下是 JavaScript 中常用的几种循环方法的详细解释。
1. for 循环
for 循环是 JavaScript 中最常用的循环结构之一。它使用一个计数器变量来控制循环的次数。
for ([initialization]; [condition]; [final-expression]) {// code block to be executed}
initialization:初始化表达式(可选),在循环开始前执行一次。condition:条件表达式,在每次循环迭代开始前检查。如果条件为true,则执行循环体;如果为false,则跳出循环。final-expression:最终表达式(可选),在每次循环迭代结束后执行。
示例:
for (let i = 0; i < 10; i++) {console.log(i);}
2. while 循环
while 循环在指定的条件为 true 时重复执行代码块。
while (condition) {// code block to be executed}
condition:条件表达式,在每次循环迭代开始前检查。如果条件为true,则执行循环体;如果为false,则跳出循环。
示例:
let i = 0;while (i < 10) {console.log(i);i++;}
3. do...while 循环
do...while 循环会先执行一次代码块,然后检查条件。只要条件为 true,就会继续执行循环体。
do {// code block to be executed} while (condition);
condition:条件表达式,在每次循环迭代结束后检查。如果条件为true,则继续执行循环体;如果为false,则跳出循环。
示例:
let i = 0;do {console.log(i);i++;} while (i < 10);
4. for...in 循环
for...in 循环用于遍历对象的可枚举属性(包括继承的属性)。但请注意,由于它会遍历对象的所有可枚举属性(包括原型链上的属性),因此在使用时要格外小心。
for (variable in object) {// code block to be executed}
variable:在每次迭代中,将不同的属性名分配给变量。object:要遍历其可枚举属性的对象。
示例(不推荐用于遍历数组,因为不保证顺序):
let obj = { a: 1, b: 2, c: 3 };for (let key in obj) {console.log(key + ": " + obj[key]);}
5. for...of 循环
for...of 循环是 ES6 中引入的一种新的循环结构,用于遍历可迭代对象(包括 Array,Map,Set,String,TypedArray,函数的 arguments 对象等等)。
for (variable of iterable) {// code block to be executed}
variable:在每次迭代中,将不同的元素值分配给变量。iterable:要遍历的可迭代对象。
示例:
let arr = [1, 2, 3];for (let value of arr) {console.log(value);}
6. 递归
虽然递归不是一种循环结构,但它在某些情况下可以模拟循环的行为。递归函数是调用自身的函数,但通常包含一个退出条件来防止无限递归。
示例(递归计算阶乘):
function factorial(n) {if (n === 0 || n === 1) {return 1;}return n * factorial(n - 1);}console.log(factorial(5)); // 输出:120
总结
JavaScript 提供了多种循环和迭代结构,以满足不同的编程需求。了解每种循环结构的特性和适用场景,可以帮助我们更高效地编写代码。在选择使用哪种循环时,需要考虑代码的可读性、性能和适用性。
相关文章:
JavaScript 循环方法详解
在编程中,循环是一种重复执行代码块的机制,直到满足某个条件为止。JavaScript 提供了多种循环结构来帮助我们实现这一功能。以下是 JavaScript 中常用的几种循环方法的详细解释。 1. for 循环 for 循环是 JavaScript 中最常用的循环结构之一。它使用一…...
树莓派4b测量PM2.5
1.GP2Y1010AU0F粉尘传感器连接图 2. GP2Y1010AU0F工作原理 工作原理 传感器中心有个洞可以让空气自由流过,定向发射LED光,通过检测经过空气中灰尘折射过后的光线来判断灰尘的含量。 3.源代码 main.py # coding=UTF-8 import RPi.GPIO as GPIO from ADC import ADS1015…...
恒生电子,快手25届实习内推
恒生电子,快手25届实习内推 ①快手 【岗位】算法、工程、游戏,产品运营、市场、职能等 【一键内推】https://campus.kuaishou.cn/recruit/campus/e/h5/#/campus/jobs?codecampuswQrLOMvHE 【内推码】campuswQrLOMvHE ②恒生电子 【招聘岗位】JAVA、测试…...
蓝桥杯练习系统(算法训练)ALGO-949 勇士和地雷阵
资源限制 内存限制:256.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 勇士们不小心进入了敌人的地雷阵(用n行n列的矩阵表示,*表示某个位置埋有地雷,-表示某个…...
腾讯安全客户端(电脑管家部门)一面
上来介绍部门,之后自我介绍 说了是个喜欢每天都学点新东西的人,然后平常也会在课余时间之外去做点项目方面的学习,比如Web项目做出来就是因为兴趣。喜欢结构性的东西,有一门课叫电路电子学一次考试是专业第二。其他也都还可以&am…...
激励与关怀并行:员工工作动力倍增之道
在现代企业中,员工是推动公司发展的核心力量。如何激发员工的工作动力,使他们在工作中发挥出最大的潜力,一直是企业管理者关注的焦点。实际上,激励与关怀并行的策略,是一种非常有效的提升员工工作动力的方法。 激励是激…...
软件系统安全设计规范(word原件)
1.1安全建设原则 1.2 安全管理体系 1.3 安全管理规范 1.4 数据安全保障措施 1.4.1 数据库安全保障 1.4.2 操作系统安全保障 1.4.3 病毒防治 1.5安全保障措施 1.5.1实名认证保障 1.5.2 接口安全保障 1.5.3 加密传输保障 1.5.4终端安全保障 软件资料清单列表部分文档…...
做题速度太慢了,面不上
没办法,之前练了一个月的sql。两个月不写,现在差不多忘干净了。工作空窗期,或者休息期不能太久,不然学再多的内容都可能会忘完的。 sql题,腾讯四道sql题,限时45分钟完成。我只做了一道,还没做完…...
Vue 路由
单应用程序 SPA - Single Page Application 所有功能在一个html页面上实现 单页面应用 多用于 系统类网站/内部网站/文档类网站/移动端站点 多页面应用 多用于 公司官网/电商类网站 路由 单页面应用按需更新页面,需要明确访问路径和组件的对应关系 Vue中的路…...
docker-compose-itd和d
docker run -itd和-d的区别 前言: 今天在通过docker-compose启动一基于ubuntu的镜像容器时,发现启动后,容器会一直停止。但是通过docker run -itd是可以正常运行的。基于这个区别,找了一位大神(师傅)问…...
WordPress MasterStudy LMS插件 SQL注入漏洞复现(CVE-2024-1512)
0x01 产品简介 WordPress和WordPress plugin都是WordPress基金会的产品。WordPress是一套使用PHP语言开发的博客平台。该平台支持在PHP和MySQL的服务器上架设个人博客网站。WordPress plugin是一个应用插件。 0x02 漏洞概述 WordPress Plugin MasterStudy LMS 3.2.5 版本及之…...
初识Vue-组件通信(详解props和emit)
目录 一、组件通信介绍 1.概念 2.作用 3.特点 4.应用 二、组件通信语法 1.Props 1.1.在子组件中声明 props 1.2.在父组件中传递数据 2.Emit 2.1.在子组件中触发事件 2.2.在父组件中监听事件 三、应用实例 1. 购物车组件 2. 表单数据处理 四、总结 一、组件通信介…...
二叉树的前序、中序、后序遍历的C++实现
二叉树的前序、中序、后序 遍历属于深度优先搜索方式,本文使用递归法实现前序、中序、后序的遍历方法,代码如下: #include <iostream> #include <vector>struct TreeNode{int val;TreeNode* left;TreeNode* right;TreeNode(int …...
golang中数组array和切片slice的区别
go语言中最常用的数据结构 数组array 和 切片 slice的区别对比: 定义和初始化: 数组: [size]类型 切片: []类型 , 数组变量[low:high] var arr1 [3]string{"a", "b", "c"} //…...
LSM-Tree 原理分析
深入浅出分析LSM树(日志结构合并树) - 知乎 写得太好了,留下记录。便于复习。 LSM树详解 - 知乎 多了点点内容,也看看吧。...
【代码随想录37期】Day01 二分查找 + 移除元素
二分查找 力扣704 贴一下之前的笔记: 没想到一下子写不出来,忘记什么是二分法了,这里回顾一下: 「二分查找 binary search」是一种基于分治策略的高效搜索算法。 它利用数据的有序性,每轮减少一半搜索范围ÿ…...
GitPython 使用教程
GitPython 使用教程 GitPython 是一个用于与 Git 版本控制系统进行交互的 Python 库。它提供了简单的接口,让你可以通过 Python 代码执行 Git 命令和操作 Git 仓库。 1. 安装 GitPython 你可以使用 pip 在命令行中安装 GitPython: pip install gitpy…...
MATLAB 基于规则格网的点云抽稀方法(自定义实现)(65)
MATLAB 基于规则格网的点云抽稀方法(自定义实现)(65) 一、算法介绍二、算法实现1.代码2.结果一、算法介绍 海量点云的处理,需要提前进行抽稀预处理,相比MATLAB预先给出的抽稀方法,这里提供一种基于规则格网的自定义抽稀方法,步骤清晰,便于理解抽稀内涵, 主要涉及到使…...
论文阅读】 ICCV-2021-3D Local Convolutional Neural Networks for Gait Recognition
motivation :现有方法方法无法准确定位身体部位,不同的身体部位可以出现在同一个条纹(如手臂和躯干),一个部分可以出现在不同帧(如手)的不同条纹上。其次,不同的身体部位具有不同的尺度,即使是不同帧中的同一部分也可以出现在不同…...
同一局域网如何从Windows系统拷贝文件到银河麒麟系统
1. 先将Windows下的、被拷贝文件所在文件夹设置为共享目录:在文件夹上单击右键选择“属性”菜单,弹出如下对话框: 按数字顺序单击鼠标左键,弹出如下对话框: 并将权限开放为Everyone,单击“共享”按钮。 在…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...
免费PDF转图片工具
免费PDF转图片工具 一款简单易用的PDF转图片工具,可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件,也不需要在线上传文件,保护您的隐私。 工具截图 主要特点 🚀 快速转换:本地转换,无需等待上…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...
uniapp手机号一键登录保姆级教程(包含前端和后端)
目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...
小木的算法日记-多叉树的递归/层序遍历
🌲 从二叉树到森林:一文彻底搞懂多叉树遍历的艺术 🚀 引言 你好,未来的算法大神! 在数据结构的世界里,“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的,它…...
热烈祝贺埃文科技正式加入可信数据空间发展联盟
2025年4月29日,在福州举办的第八届数字中国建设峰会“可信数据空间分论坛”上,可信数据空间发展联盟正式宣告成立。国家数据局党组书记、局长刘烈宏出席并致辞,强调该联盟是推进全国一体化数据市场建设的关键抓手。 郑州埃文科技有限公司&am…...
