JS中的循环怎么使用

js中的循环怎么使用

JS中的循环主要用于重复执行一段代码,直到满足特定条件为止。 掌握它们对于处理数组、对象以及执行重复性任务至关重要。

解决方案

JavaScript 提供了几种循环结构,各有用途:

for

循环

这是最常用的循环之一,尤其适用于已知循环次数的情况。

for (let i = 0; i < 10; i++) {  console.log(i); // 输出 0 到 9}
let i = 0

:初始化循环变量

i

i < 10

:循环条件,只要

i

小于 10,循环就继续执行。

i++

:每次循环结束后,

i

的值加 1。

for

循环的灵活性很高,可以根据需要调整初始化、条件和递增/递减部分。 比如,可以倒序循环:

for (let i = 9; i >= 0; i--) {  console.log(i); // 输出 9 到 0}

while

循环

while

循环在给定条件为真时重复执行代码块。 当循环次数未知,而是依赖于某个条件变化时,

while

循环就派上用场了。

let i = 0;while (i < 10) {  console.log(i);  i++; // 别忘了更新 i,否则会变成死循环!}

如果

while

循环的条件一开始就是

false

,那么循环体一次都不会执行。

do...while

循环

do...while

循环与

while

循环类似,但它保证循环体至少执行一次。

let i = 0;do {  console.log(i);  i++;} while (i < 10);

即使

i

的初始值大于等于 10,循环体也会先执行一次,然后再判断条件。

for...in

循环

for...in

循环用于遍历对象的属性。 它会迭代对象的所有可枚举属性(包括继承的属性)。

const person = {  name: 'Alice',  age: 30,  city: 'New York'};for (let key in person) {  console.log(key + ': ' + person[key]); // 输出属性名和属性值}

需要注意的是,

for...in

循环遍历的是属性名(字符串),而不是属性值。 另外,要小心继承的属性,可能需要使用

hasOwnProperty()

方法来过滤。

SpeakingPass-打造你的专属雅思口语语料 SpeakingPass-打造你的专属雅思口语语料

使用chatGPT帮你快速备考雅思口语,提升分数

SpeakingPass-打造你的专属雅思口语语料 25 查看详情 SpeakingPass-打造你的专属雅思口语语料

for...of

循环

for...of

循环用于遍历可迭代对象(例如数组、字符串、Map、Set 等)的值。

const numbers = [1, 2, 3, 4, 5];for (let number of numbers) {  console.log(number); // 输出数组中的每个元素}const str = "Hello";for (let char of str) {  console.log(char); // 输出字符串中的每个字符}

for...of

循环是 ES6 引入的,比传统的

for

循环更简洁易读。 它专门用于遍历值,而不需要关心索引。

如何避免 JS 循环中的常见错误?

循环中的错误可能导致程序崩溃或产生意外结果。 最常见的错误包括:

死循环:循环条件永远为真,导致程序无限循环。 务必确保循环条件最终会变为

false

索引越界:访问数组时,索引超出数组的范围。 检查索引是否在有效范围内。错误的循环条件:循环条件设置不正确,导致循环次数不符合预期。 仔细检查循环条件是否符合逻辑。在循环内部修改循环变量:在循环内部修改循环变量可能导致循环行为异常。 尽量避免这样做,或者至少要非常小心。

例如,下面这段代码就很容易出错:

const arr = [1, 2, 3, 4, 5];for (let i = 0; i < arr.length; i++) {  if (arr[i] === 2) {    arr.splice(i, 1); // 从数组中删除元素  }  console.log(arr[i]);}

这段代码的目的是遍历数组,如果遇到值为 2 的元素,就将其删除。 但是,由于

splice()

方法会改变数组的长度,导致循环索引

i

错位,最终会跳过某些元素。 正确的做法是倒序遍历,或者使用

filter()

方法创建一个新数组。

如何选择合适的 JS 循环类型?

选择哪种循环类型取决于具体的需求:

如果已知循环次数,或者需要精确控制循环过程,可以使用

for

循环。如果循环次数未知,而是依赖于某个条件变化,可以使用

while

do...while

循环。如果需要遍历对象的属性,可以使用

for...in

循环。如果需要遍历可迭代对象的值,可以使用

for...of

循环。

一般来说,

for...of

循环是遍历数组和字符串的最佳选择,因为它更简洁易读,而且避免了索引相关的错误。

for...in

循环主要用于遍历对象,但要注意过滤继承的属性。

while

do...while

循环适用于更复杂的循环逻辑,例如读取文件内容或者等待用户输入。

如何优化 JS 循环的性能?

循环是性能瓶颈的常见来源。 以下是一些优化循环性能的技巧:

减少循环体内的计算量:将循环体内的常量计算移到循环外部。避免在循环内部创建对象:在循环内部创建对象会增加垃圾回收的负担。 尽量在循环外部创建对象,然后在循环内部重用。使用

for...of

循环代替传统的

for

循环

for...of

循环通常比

for

循环更快,因为它避免了索引相关的计算。减少 DOM 操作:频繁的 DOM 操作会严重影响性能。 尽量减少 DOM 操作的次数,例如先将修改应用到内存中的变量,然后一次性更新 DOM。使用 Web Workers:如果循环计算量很大,可以考虑使用 Web Workers 将计算任务放到后台线程执行,避免阻塞主线程。

例如,下面这段代码可以优化:

const arr = document.querySelectorAll('.item');for (let i = 0; i < arr.length; i++) {  arr[i].style.width = '100px';  arr[i].style.height = '100px';  arr[i].style.backgroundColor = 'red';}

这段代码会遍历所有 class 为

item

的 DOM 元素,并设置它们的样式。 但是,每次循环都会进行三次 DOM 操作,非常耗时。 可以优化如下:

const arr = document.querySelectorAll('.item');const len = arr.length; // 将 arr.length 缓存起来for (let i = 0; i < len; i++) {  const item = arr[i]; // 将 arr[i] 缓存起来  item.style.width = '100px';  item.style.height = '100px';  item.style.backgroundColor = 'red';}

或者,可以使用 CSS 类来一次性设置样式:

const arr = document.querySelectorAll('.item');for (let i = 0; i < arr.length; i++) {  arr[i].classList.add('red-item');}
.red-item {  width: 100px;  height: 100px;  background-color: red;}

总之,理解 JS 循环的各种类型、避免常见错误、选择合适的循环类型以及优化循环性能,是编写高效 JavaScript 代码的关键。

以上就是JS中的循环怎么使用的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/230242.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月3日 20:46:49
下一篇 2025年11月3日 20:47:22

相关推荐

  • 2025年政策绞杀预警:这3类币将被清退,赶紧抛售!

    加密货币市场在全球范围内受到严格监管,尤其是在2025年,各国政府可能进一步加强对加密货币的合规要求。以下是可能被监管“清退”或受限制的三类加密货币的推测,基于当前的监管趋势: 2025全球主流币安全交易所推荐 币安Binance:   欧易OKX:     Huobi火币:     Gate.io…

    2025年12月8日
    000
  • 2025合规SAHARA交易所TOP10

    一键直达|2025主流加密资产交易所平台 Binance币安 Huobi火币 欧易OKX 2025年合规SAHARA交易所TOP10——全球最具监管资质的平台评选 随着全球对数字资产监管逐步明晰,合规性已成为衡量交易所可信度与可持续性的核心指标。对于SAHARA等新兴资产而言,选择合规交易所,不仅保…

    2025年12月8日
    000
  • 抓住风口!这些暴涨的币或成下一波牛市引擎

    2025年下半年加密货币市场回暖,以下项目具备推动下一轮牛市潜力:1. 公链赛道中Solana(SOL)凭借Firedancer升级及生态活跃度提升表现亮眼;Toncoin(TON)依托Telegram整合和社交传播模式快速崛起;2. AI+区块链领域Render(RNDR)通过整合全球算力服务AI…

    2025年12月8日
    000
  • 币圈空头回补是什么意思?交易者又该如何应对?和多头回补有什么区别?

    币圈空头回补是什么意思?币友如何应对币圈空头回补呢? 空头回补是金融市场中的一个常见现象,反映了市场参与者的交易行为和情绪变化。它可能是市场趋势反转的信号之一,也可能只是一次短暂的情绪释放。作为交易者,深入理解空头回补的本质将有助于更好得把握市场机会和管理风险。 空头回补是金融市场中的一个重要概念,…

    2025年12月8日 好文分享
    000
  • Bitwise向美国SEC提交修正后的狗狗币现货ETF申请文件通过有望?

    狗狗币(DOGE)正朝着跻身主流金融市场,再向前迈出关键一步。美国资产管理公司Bitwise昨(26)日向美国证管会(SEC)提交修正后的狗狗币现货ETF申请文件,据业界观察,这不仅象征SEC已展开实质审查,更可能意味着核准时程正加速逼近。 彭博资深ETF分析师Eric Balchunas表示,Bi…

    2025年12月8日
    000
  • MetaTrust Labs是什么?融资、技术、产品、愿景介绍

    什么是metatrust labs?metatrust labs能给我们带来什么? MetaTrust Labs 是 Web3 安全领域的领先创新者,提供 AI 驱动的安全解决方案。通过 MetaScan、MetaScout 和 MetaScore 等尖端工具,为开发者提供全面的安全保障,包括自动化…

    2025年12月8日 好文分享
    000
  • Brian Armstrong宣布每周加仓比特币!Coinbase有望成首家市值破千亿美元纯加密货币企

    截至27日收盘,Coinbase的市值已超过940亿美元,距离千亿美元大关仅一步之遥。1confirmation创办人Nick Tomaino今晨就在X平台发文指出,「Coinbase作为市值低于1000亿美元公司的日子已屈指可数」。 Coinbase今年初至今上涨43% Coinbase股票今年以…

    2025年12月8日
    000
  • 质押型ETF时代来临:Solana首吃螃蟹 年化5%收益直接派发投资者

    SOL币价格最新行情 ‍ 美国证券交易委员会(SEC)6月28日对REX Shares的SOL以太坊质押ETH申请(代号SSK),回函表示「无进一步评论」,让市场视此为质押型ETF的关键突破。 REX Shares也在X发文表示: “即将登场:美国首档「质押型加密货币ETF」! 我们隆重推出REX-…

    2025年12月8日
    000
  • Fuel Network(FUEL)是什么?如何运作?FUEL代币经济与空投计划介绍

    目录 什么是Fuel Network(FUEL)Fuel Network的背景和历史独特功能和技术贡献使用场景和应用Fuel Network(FUEL)是如何运作的什么是SwayFuel Network 的架构Fuel 的未来FUEL 代币FUEL代币:生态系统的核心FUEL的主要功能FUEL的代币…

    2025年12月8日
    000
  • BlockDag:这是增长最快的加密货币,准备爆炸吗?

    blockdag凭借其创新技术与亮眼的预售表现吸引了众多关注。但这是否真的是目前发展最快的加密货币呢? BlockDag正在引发热议!该项目设定了6亿美元的融资目标,并以实际进展支撑其计划。但它真的能够兑现承诺吗? Blockdag:只是炒作还是真有实力? 在加密领域,炒作层出不穷,但一些项目确实在…

    2025年12月8日
    000
  • Litecoin Price,2030 Prediction,LTC预测:LTC可以恢复其荣耀吗?

    litecoin(ltc)是否具备卷土重来的潜力?查看2030年及以后的最新价格预测,以及影响ltc未来走势的关键因素。 Litecoin Price,2030 Prediction,LTC预测:LTC能否重现辉煌? Litecoin(LTC)这一曾被誉为比特币黄金搭档的加密货币再次引发关注。随着整…

    2025年12月8日
    000
  • 狗狗币(DOGE)还能再创奇迹吗?Meme币的未来走势分析

    本文将围绕“狗狗币能否再创奇迹”这一问题展开探讨,通过分析Meme币市场的核心驱动力、未来走势的关键影响因素,以及狗狗币自身面临的机遇与挑战,为读者提供一个理解和判断其未来潜力的分析框架。我们将通过分步讲解的方式,阐述如何观察和分析这些因素,帮助您更好地理解Meme币的波动逻辑。 Meme币的核心驱…

    2025年12月8日
    000
  • 加密货币飙升:前五名观看Q3 2024

    发现2024年第二季度可能爆发的前5大加密货币,包括chainlink、aptos、sei、plume network和worldcoin。 加密货币飙升:关注Q3 2024的前五名 =================== 加密市场正在酝酿新的潜力,2024年第三季度对多个重要项目来说前景乐观。以下…

    2025年12月8日
    000
  • 在美国制造的硬币Q3前景:图表,趋势和潜在价值

    通过我们的第三季度分析,探索“美国制造加密货币”的奇妙世界。揭示关键趋势、潜在价值以及哪些代币正在掀起波澜! 美国制造加密货币Q3展望:图表、趋势与价值潜力 嘿,加密爱好者们。“美国制造”加密项目的热度正持续上升。第三季度的走势充满看点,现在我们一起来看看相关图表、趋势和潜在投资机会。 “美国制造”…

    2025年12月8日
    000
  • 分散存储:Filecoin,Arweave和热数据革命

    通过filecoin、arweave、walrus与shelby,探索去中心化存储的发展路径,聚焦实时数据访问及web3融合的演进。 过去以冷数据保存为主的去中心化存储格局正在升温。作为该领域的开拓者,Filecoin和Arweave如今迎来了Walrus与Shelby等新兴项目的加入,标志着行业正…

    2025年12月8日
    000
  • 云母规则,欧洲委员会和欧洲央行警告:导航欧盟加密货币景观

    探索云母规则,欧盟委员会的潜在调整以及欧洲央行在不断发展的欧盟加密货币市场中的警告之间的紧张局势。 云母规则、欧洲委员会与欧洲央行警告:解读欧盟加密格局 当前,围绕云母规则的讨论成为欧洲加密市场的焦点。随着欧盟委员会考虑可能的修改,同时面对欧洲央行的警示声音,我们一起来梳理这一系列动态及其对欧洲加密…

    2025年12月8日
    000
  • b安2.101.8bug多吗 b安2.101.8版本有bug吗

    2025Binance币安 | 一键直达 Binance 2.101.8 版本(发布于 2025‑06‑11)在功能和界面上进行了优化,P2P 模块新增 “私有广告”功能,同时修复了若干性能问题。整体体验平稳,未爆出大规模稳定性问题。 已知 Bug 报告 来自 Binance 用户社区反馈:“Aft…

    2025年12月8日
    000
  • 安币2.101.8bug多吗 安币2.101.8版本有bug吗

    2025Binance币安 | 一键直达 Binance 2.101.8 版本(发布于 2025‑06‑11)在功能和界面上进行了优化,P2P 模块新增 “私有广告”功能,同时修复了若干性能问题。整体体验平稳,未爆出大规模稳定性问题。 已知 Bug 报告 来自 Binance 用户社区反馈:“Aft…

    2025年12月8日
    000
  • 币安2.101.8bug多吗 币安2.101.8版本有bug吗

    2025Binance币安 | 一键直达 Binance 2.101.8 版本(发布于 2025‑06‑11)在功能和界面上进行了优化,P2P 模块新增 “私有广告”功能,同时修复了若干性能问题。整体体验平稳,未爆出大规模稳定性问题。 已知 Bug 报告 来自 Binance 用户社区反馈:“Aft…

    2025年12月8日
    000
  • 一文详解欧盟、阿联酋、新加坡三地稳定币监管框架

    本文对稳定币的监管框架的分析主要将从以下几个角度展开:监管进程、规范文件、监管部门以及监管框架的核心内容,具体内容框架如下: 目录 (一)欧盟 1、监管进程和规范文件 2、对应监管部门 3、监管框架主要内容 a.稳定币的定义 b.发行人的准入门槛 c.币值稳定机制和储备资产的维持 d.流通环节的合规…

    2025年12月8日 好文分享
    000

发表回复

登录后才能评论
关注微信