JS中的4种for循环

JS中的4种for循环分类普通 for 循环自行指定循环次数 for i 0 i

分类

  • 普通for循环
    自行指定循环次数。

for (i = 0; i < loopTimes; i++) { console.log(i); } 
  • for..in循环
    属历史遗留,用于遍历对象的属性(数组的索引值也算属性)。
    但有一个缺点:如果手动向数组添加成员属性,则:
    虽然数组的length不变,但用for..in遍历数组会遍历到那些新定义的属性。






for (property in obj) { console.log(property, obj[property]); } 
  • for..of循环(ES6)
    for..of循环修复了for..in存在的问题,他只遍历属于对象本身的属性值。
    且这个对象必须是iterable可被迭代的。如Array, Map, Set




for (element of iterable) { console.log(element); } 
  • forEach(callbackFn, ?thisArg)方法(ES5.1)
    iterable可被迭代的对象都有forEach(callbackFn, ?thisArg)
    Array, Map, Set对象都是可被迭代的。
    forEach()接收一个回调函数callbackFn,每次迭代都回调该函数。
    回调函数的参数列表为(value, key, iterable),依次是(值, 键, 可迭代的对象本身)








iterable.forEach(function(value, key, iterable) { console.log(key, value, iterable); }); 

sum

  • iterable可被迭代的对象类型有Array, Map, Set
  • 普通for循环可用于遍历数组
  • for..in可遍历Array, Object对象,且会遍历到新添加的成员属性
  • for..of可遍历iterable可被迭代的对象(不包括Object)。且只遍历属于对象本身的属性
  • iterable可被迭代的对象有成员方法forEach(),也只遍历属于对象本身的属性

code

arr = [1,2,3,4]; (4) [1, 2, 3, 4] // 1. 普通for循环 for (i = 0; i < arr.length; i++) { console.log(i, arr[i]); } 0 1 1 2 2 3 3 4 undefined // 2. for..in,遍历对象的属性(数组下标也算)。 for (property in arr) { console.log(property, arr[property]); } 0 1 1 2 2 3 3 4 undefined // 但是,如果向数组手动添加成员属性,则for..in也会遍历到这些新的属性。 console.log(arr.length, arr); arr.name = "JT"; arr.age = 22; console.log(arr.length, arr); 4 (4) [1, 2, 3, 4] 4 (4) [1, 2, 3, 4, name: "JT", age: 22] undefined // 再次用for..in遍历数组。会发现新定义的成员属性也被遍历。 for (property in arr) { console.log(property, arr[property]); } 0 1 1 2 2 3 3 4 name JT age 22 undefined // 3. 用for..of遍历数组对象。只会遍历属于数组本身的值。 for (element of arr) { console.log(element); } 1 2 3 4 undefined // 4. 用`iterable.forEach(callbackFn, ?thisArg)`遍历。 arr.forEach(function(value, key, arr) { console.log(key, value, arr); }); 0 1 (4) [1, 2, 3, 4, name: "JT", age: 22] 1 2 (4) [1, 2, 3, 4, name: "JT", age: 22] 2 3 (4) [1, 2, 3, 4, name: "JT", age: 22] 3 4 (4) [1, 2, 3, 4, name: "JT", age: 22] 

JS中农的4种for循环

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/176518.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午9:44
下一篇 2026年3月26日 下午9:44


相关推荐

  • 简练网软考知识点整理-项目需求跟踪及需求跟踪矩阵[通俗易懂]

    简练网软考知识点整理-项目需求跟踪及需求跟踪矩阵[通俗易懂]需求跟踪矩阵是把产品需求从其来源连接到能满足需求的可交付成果的一种表格。使用需求跟踪矩阵,可以把每个需求与业务目标或项目目标联系起来,有助于确保每个需求都具有商业价值。需求跟踪矩阵提供了在整个项目生命周期中跟踪需求的一种方法,有助于确保需求文件中被批准的每项需求在项目结束的时候都能交付。最后,需求跟踪矩阵还为管理产品范围变更提供了框架。

    2025年5月24日
    8
  • wpf图表-Visifire使用教程分享

    wpf图表-Visifire使用教程分享visifire是一个基于WPF&silverlight的动画图表控件,支持数据绑定、数据钻取以及实时更新等功能特点。下面分享一些Visifire使用教程:Visifire图表控件对有大差异数据的图标绘制问题Visifire图表多线程技术Timer应用详解Visifire制作透明图表参考示例如何将Visifire所生成的图表转换成图片如何自定义visifire…

    2022年7月21日
    13
  • 揭秘Agent智能体:如何让AI真正自主思考与执行任务?

    揭秘Agent智能体:如何让AI真正自主思考与执行任务?

    2026年3月16日
    2
  • 初探ASP NET MVC Web Application

    初探ASP NET MVC Web Application1.使用VisualStudio2008,下载ASP.NETMVCFramework2.默认的ASP.NETMVCProject包括6个目录Controls–放置Controller类,处理URL请求。Models–放置业务实体类,表示和操作数据。Views–放置UI模板文件,负责展示输出结果。(MVC主要的目录)Scripts–放置Javascr

    2022年7月21日
    13
  • matlab怎么验证正规阵,正规矩阵的性质及判定

    matlab怎么验证正规阵,正规矩阵的性质及判定矩阵的基本性质矩阵的第 第列的元素为 我们 或 表 1 矩阵的加减法 1 对应元素相加减 2 矩阵加减法满足的运算法则 a 交换律 的单位 矩阵的迹和行列式 1 则是正规矩阵 若为矩阵的迹 或 则是实正规矩阵为行列式 2 3 4 注 矩阵乘法不满足交换律 为酉矩阵 则 5 实对称矩阵特征值的性质及其应用

    2026年3月16日
    2
  • RAC FAILover详解

    RAC FAILover详解Oracle nbsp RAC 同时具备 HA HighAvailiab 和 LB LoadBalance 而其高可用性的基础就是 Failover 故障转移 它指集群中任何一个节点的故障都不会影响用户的使用 连接到故障节点的用户会被自动转移到健康节点 从用户感受而言 是感觉不到这种切换 nbsp Oracle10gRAC 的 Failover 可以分为 3 种 1 Client Sid

    2025年6月16日
    11

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号