四、for of 听网上说这种方法优化了for in 提高了效率,而且可以在循环中中断看上去也简洁 for (var arri of arr) { sum += arri } 遍历9位数长度的数组用时1225ms,虽然比不上普通的for循环,但是比for in确实好了太多了 for of 不能遍历对象,遍历时报错:Uncaught TypeError: obj[Symbol.iterator] is not...
因为HTMLCollection是一个类似数组的对象(而不是一个常规数组),所以我们不能使用常规数组方法。 例如,每个 DOM 元素的children属性都是HTMLCollection。 因此,由于for...of可以在类似数组的对象上进行迭代,因此我们可以轻松地迭代子代: 代码语言:javascript 复制 constchildren=document.body.children;for(constchildofchildr...
for...of 不同与 forEach, 它可以与 break、continue 和 return 配合使用,也就是说 for...of 循环可以随时退出循环。 for...of 循环可以使用的范围包括数组、Set 和 Map 结构、某些类似数组的对象(比如 arguments 对象、DOM NodeList 对象)、Generator 对象,以及字符串,但是不能遍历对象,因为没有迭代器对象,...
for-of 通常是最佳选择。我们会明白原因。 for 循环 [ES1] JavaScript 中的 for 循环很古老,它在 ECMAScript 1 中就已经存在了。for 循环记录 arr 每个元素的索引和值: constarr = ['a','b','c']; arr.prop ='property value';for(letindex=0;index< arr.length;index++){ const elem = arr[inde...
for...of更简洁,不需要手动管理索引。 for...of直接遍历值,而for循环需要通过索引来访问值。 与for...in循环的区别: for...in遍历的是对象的键(在数组中是索引),而for...of遍历的是对象的值。 for...in还会遍历对象原型链上的可枚举属性,而for...of不会。 与forEach方法的区别: forEach是一个高...
for of 是es6引新引入的特性,修复了es5引入的for in 的不足。 for of 不能循环普通的对象,需要通过Object.keys搭配使用。 对于他们的区别,一般就看下面一段代码就可: 代码语言:javascript 复制 {constb=[1,2,3,4];// 创建一个数组b.name='小明';// 给数组添加一个属性Array.prototype.age=12;// 给...
对于forEach方法除非使用try/catch,否则无法中途停止循环,break或者return都无法使循环中途停止。而for…of循环可以与break,continue和return配合使用,中途停止循环: 1.)forEach() 遍历普通数组 const arr = [11, 22, 33, 44, 55, 66, 77, 88];
for...of 循环可以直接遍历数组元素,不需要索引 for(letvalueofarr) {// 处理每个元素 value} 例如: letarr = [1,2,3,4,5];for(letvalueofarr) {console.log(value); }// 输出:// 1// 2// 3// 4// 5 3. forEach() 遍历 forEach() 为数组中的每个元素执行一次回调函数。
ES2015 版本中引入的 for...of 语句就是这种情况。 for...of 可以迭代数组、类数组以及任何可以迭代的对象( maps 、 sets 、 DOM集合 ),并且, for...of 的语句还很短。 在这篇文章中,我将会演示 for...of 的能力。 1. 数组迭代 for...of 最常见的应用是对数组项进行迭代。该循环可以高效得完成迭代...
五、在ES6中,增加了一个for of循环,使用起来很简单 for(let v of array) { console.log(v); }; let s ="helloabc"; for(let c of s) { console.log(c); } 总结来说:for in总是得到对像的key或数组,字符串的下标,而for of和forEach一样,是直接得到值 ...