首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >for循环和for..of循环有什么区别?

for循环和for..of循环有什么区别?
EN

Stack Overflow用户
提问于 2020-08-15 17:54:10
回答 1查看 104关注 0票数 1

在迭代数组的上下文中,for循环和for..of循环的主要区别是什么?

为什么这段代码

代码语言:javascript
复制
for (let n of at.neighbours) {
  DFS(n);
}

是否给出与此代码不同的输出?

代码语言:javascript
复制
for (let i = 0; i < at.neighbours.length; i++) {
  n = at.neighbours[i]
  DFS(n);
}

顺便说一下,这是我的函数:

代码语言:javascript
复制
function DFS(at) {
  if (at.visited) return;
  at.visited = true
  
  // for (let i = 0; i < at.neighbours.length; i++) {
  //   n = at.neighbours[i]
  //   DFS(n);
  // }
  
  // This gives desired output
  for (let n of at.neighbours) {
    DFS(n);
  }
}
EN

回答 1

Stack Overflow用户

发布于 2020-08-15 21:27:30

基本差异

for语句允许您在控制开始和终止条件的同时遍历可迭代对象。

for...of还可用于迭代可迭代对象(数组和类似数组的对象以及用户定义的可迭代对象)。除非使用breakreturnthrow关键字终止该操作,否则将对每个不同属性的值执行该操作。

forEach方法可用作可迭代对象的原型方法,但除非抛出错误,否则将为每个元素执行该方法。(理想情况下,仅当要在每个元素上执行操作时才使用)

性能方面的

for语句的性能优于所有其他迭代语句。Refer to this

支持方面的

跨浏览器广泛支持

  • for语句。Internet Explorer仍然不支持Link
  • for...of。阵列也广泛支持Link
  • forEachLink
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63424727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档