javascript循环方式有几种?

更新日期: 2019-08-27 阅读: 2.2k 标签: 循环

JavaScript中的循环方式有for、forEach、do...while、while、for...in、for...of等。这几种循环方式的使用方式和其支持的循环类型有所不同。


for

const list = ['a', 'b', 'c']
for (let i = 0; i < list.length; i++) {
  console.log(list[i]) //value
  console.log(i) //index}

您可以使用break中断for循环

您可以使用continue继续for循环的下一次迭代


forEach

在ES5中引入。给定一个数组,您可以使用list.forEach()迭代其属性:

const list = ['a', 'b', 'c']
list.forEach((item, index) => {
  console.log(item) //value
  console.log(index) //index
})
//index is optional
list.forEach(item => console.log(item))


do...while

const list = ['a', 'b', 'c']
let i = 0do {
  console.log(list[i]) //value
  console.log(i) //index
  i = i + 1} while (i < list.length)

您可以使用break中断while循环:

do {  if (something) break} while (true)

你可以使用continue跳转到下一个迭代:.

do {  if (something) continue

  //do something else} while (true)


while

const list = ['a', 'b', 'c']
let i = 0while (i < list.length) {
  console.log(list[i]) //value
  console.log(i) //index
  i = i + 1}

您可以使用break中断while循环:

while (true) {  if (something) break}

你可以使用continue跳转到下一个迭代:

while (true) {  if (something) continue

  //do something else}

与do...while的区别在于do...while总是至少执行一次循环。


for...in

迭代对象的所有可枚举属性,给出属性名称。

for (let property in object) {  console.log(property) //property name
  console.log(object[property]) //property value}


for...of

ES2015引入了for循环,它结合了forEach的简洁性和破解能力:

//iterate over the value
for (const value of ['a', 'b', 'c']) {  console.log(value) //value
}

//get the index as well, using `entries()`
for (const [index, value] of ['a', 'b', 'c'].entries()) {  
  console.log(index) //index
  console.log(value) //value}

注意使用const。此循环在每次迭代中创建一个新范围,因此我们可以安全地使用它而不是let。


本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://fly63.com/article/detial/7823

相关推荐

如何中断forEach循环

在使用for循环的时候可以使用break 或者return语句来结束for循环(return直接结束函数),但是如果使用forEach循环如何跳出循环呢?首先尝试一使用return语句----木有效果

关于for循环中使用setTimeout的四种解决方案

我们先来简单了解一下setTimeout延时器的运行机制。setTimeout会先将回调函数放到等待队列中,等待区域内其他主程序执行完毕后,按时间顺序先进先出执行回调函数。本质上是作用域的问题

Js中循环执行

循环:就是一遍又一遍执行相同或者相似的代码,循环的两个要素:循环体:重复执行的代码;循环条件:控制循环的次数

跳出 forEach

使用for...in遍历对象时,会遍历原型链上的可枚举属性,这可能会导致一些意想不到的问题。所以你一定收到过这样的建议,使用数组的forEach来代替for...in循环。本文给大家总结了5种在forEach中跳出循环的变通之法

vue 全局前置守卫引起死循环的原因与解决方法

我们经常会用到全局前置守卫,如判断用户有没有登陆过,如果登陆过就直接跳到目的页面,如果没有登陆过,就跳转到登陆页。先看官网对全局前置守卫的介绍

解决使用Vue-Router出现无限循环问题

我在项目里面用到了的是全局守卫,beforeEach,方便管理 不过遇到了一个问题,就是在beforeEach()中设置好判断条件后出现了无限循环的问题 当时的代码如下:

vue beforeEach 死循环问题解决方法

什么是beforeEach?beforeEach 是一个vue-router的路由导航钩子,一般我用它做路由守卫。什么是路由守卫?举个例子,当我们没有登录的时候,跳转到登录页面。如果登录了,则正常跳转。

用于JavaScript中的循环和同时循环

如果您需要重复大量的代码数百次,这会变得非常笨拙。而且,它也不是很有用。例如,如果希望它重复X次呢?这就是循环的用武之地。次数通常由变量决定,但也可以由实际数字决定。

Js循环的几种方法

for 常用于循环数组 ,for in 常用来循环对象,不建议循环数组,因为i是字符串 可能会有隐患问题,for in 循环会找到 prototype 上去,所以最好在循环体内加一个判断

Node.js事件循环

对于本文中一些知识点任然有些模糊,懵懵懂懂,一直都在学习中,通过学习事件循环也看了一些文献,在其中看到了这一句话:除了你的代码,一切都是同步的,我觉得很有道理,对于理解事件循环很有帮助。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!