1.传统for循环

for (init; cond; inc) {}

与C++或Java类似,for关键字后用小括号描述循环设置,在小括号中用两个分号;将循环设置隔断为三个部分,分别为:

  • init初始化语句(指令),在整个循环开始前执行
  • cond条件(逻辑表达式),表示循环继续的条件
  • inc自增语句(指令),在每次循环体结束以后执行

整个循环的执行步骤为:

  • 执行init语句
  • 计算cond表达式,若为假则退出循环
  • 执行循环体body
  • 执行inc语句,随后返回步骤2

举个栗子:

let sum = 0
for (let i = 1; i <= 10; i++) {sum += i
}
console.log(sum) // 55

2.for of  循环

for (const v of iterable) {}

这里的iterable是指各种能够被迭代的JS对象。最常用的例子是数组Array和字符串String,此外还有arguments、NodeList、Map、Set等等。执行的效果是,for循环会遍历iterable的每个项目,在每次循环中,代表变量v即为当前循环的项目。

举个栗子:

const arr = [1, 2, 3, 4, 5,6]
let sum = 0
for (const v of arr) {sum += v
}
console.log(sum) // 21

3.for in 循环

for (const k in object) {}

for in循环会遍历object的每个属性,在每次循环中,代表变量k即为当前属性的属性名称(key)。

需要注意的是for of和for in的区别,前者的代表变量是项目的值(value),后者的代表变量是属性的名称(key)。

举个栗子:

const obj = { a: 1, b: 2, c: 3 }
let sum = 0
for (const k in obj) {sum += obj[k]
}
console.log(sum) // 6

4.forEach 循环

Array.forEach(Function)

forEach是JS数组的原生方法。它接受一个函数作为参数,执行效果是对数组的每一个项目,执行传入的函数。传入的函数可以接受三个参数:(element, index, array),其中element表示当前项目的值,index表示当前项目的下标,array表示循环的数组本身。

通常在程序中我们更倾向于使用for of循环来代替forEach方法,因为for关键字使得代码的可读性更高。但是在一些特殊的情况下,我们依然会使用forEach方法循环遍历数组中的每个项目。

const arr = [1, 2, 3, 4, 5]
let sum = 0
arr.forEach((item,index) => sum += item)
console.log(sum) // 15

JS中for循环的四种写法相关推荐

  1. JS中for循环的两种写法

    第一种: 最常见普遍的写法,适用于多种语言 for(let i = 0; i < 10 ; i++){console.log(i); } 打印结果: 第二种: 较第一种比较简单方便 const ...

  2. java for循环 写法_java中for循环的6种写法

    packageForLoop;importjava.util.ArrayList;importjava.util.Iterator;importjava.util.List;/*** java中for ...

  3. Vue中 模板template的四种写法

    <div id="app"><h1>我是直接写在构造器里的模板1</h1> </div><template id=" ...

  4. VB中do循环的四种格式

    在VB中,do循环具有四种格式. 格式1: do while 条件循环体 loop格式2: do until 条件循环体 loop格式3: do 循环体 loop while 条件格式4: do循环体 ...

  5. js中的for循环如何跳出,js中for循环的两种语法

    js几种for循环的几种用法 谷歌人工智能写作项目:小发猫 js,for循环是怎么运行的? typescript有哪些变化. 最普遍的介绍:for循环是JavaScript中最常用的循环,标准for循 ...

  6. html页面循环报错,wxs 脚本中 for 循环的一种写法导致 page-frame.html 报错

    - 当前 Bug 的表现(可附上截图) P.S. 本来昨天就想提这个问题,但今天想截图效果时,发现使用同一段代码时却无法复现了... 原本我是想在 wxs 中循环遍历一个数组,然后判断符合某个条件后再 ...

  7. Python从入门到实践:7-5电影票循环的四种写法,动手试一试

    7-5电影票:有家电影院根据观众的年龄收取不同的票价:不到3岁的观众免费:3-12岁的观众为10元,超过12岁的观众为15元,请编写一个循环,在其中询问用户年龄,并指出其票价: #电影票 age = ...

  8. JS中回调函数的三种写法!

    //第一种---------------------------------------- function parent(str,callback) {console.log(str);callba ...

  9. js中匿名函数的N种写法

    匿名函数没有实际名字,也没有指针,怎么执行滴?  其实大家可以看看小括号的意义就应该可以理解.小括号有返回值,也就是小括号内的函数或者表达式的返回值,所以说小括号内的function返回值等于小括号的 ...

最新文章

  1. elasticJob分片跑批
  2. 一次心血来潮的C程序编译 makefile
  3. iOS 去除导航栏下的黑线
  4. python copy模块_python日记第四章:python文件copy模块shutil
  5. 【Python】7000字,7幅图,这样就可以拿下Python字典?
  6. SP1811-Longest Common Substring【SAM】
  7. visual报表服务器项目,为 Visual Studio ALM 创建报表服务器项目
  8. 关于计算机考试网上操作的题目及答案,《计算机基础考试题及答案》.doc
  9. java创建文件夹和文件_Java创建文件夹与创建文件
  10. (转)Hibernate框架基础——映射集合属性
  11. sprintf 详解
  12. 计算机辅助英语教学 研究背景,计算机辅助外语教学中的教师角色研究
  13. It技能图谱(13张)
  14. 常用的台湾繁体字字体(轉)
  15. Python-移位密码、仿射变换解密
  16. python乘法口诀表打印
  17. 使用WinWedge软件记录satorius天平的数据(记录)
  18. 【Excel】数据透视表—新增一列(字段)
  19. Wifi密码破解与局域网抓包监听(小白--纯工具版)
  20. 漂亮的title提示信息

热门文章

  1. Linux中通过v4l2框架获取摄像头的能力的方法
  2. 数字IC设计入门篇:APB总线协议学习心得
  3. 在 Flutter 中使用 webview_flutter 4.0 | 基础用法与事件处理
  4. 游戏公司通用屏蔽字列表
  5. 关于35岁程序员失业的问题
  6. 20个值得一读的设计博客
  7. 凤舞天骄TB商店修改器V1.0(DELPHI源代码,无需注册)
  8. linux下如何将dts转换成dtb?
  9. 运行301毕设-初步学习
  10. 电磁兼容工程(Electromagnetic compatibility engineering Herry Ott )读书笔记-- 章16 PCB设计和叠层结构