JavaScript遍历方法比较

  • for...of : (ES6)提供统一的遍历机制,所有实现了[Symbol.iterator]接口的对象都可以被遍历。可迭代对象包括 ArrayMapSetStringTypedArrayarguments 对象等,Object不是可迭代对象。
    JavaScript遍历方法比较

  • for...in : 循环以任意序遍历一个对象的可枚举属性,功能类似于Object.keys()。对象的有些属性以相同的方式标记成了只读的,永久的即不可删除的或者不可列举的,这些属性使用这种循环不能枚举出来,比如length、constructor以及StringindexOf() 方法或 ObjecttoString()方法。用户定义的属性都可以枚举,但是内部属性以及所有的内部方法都是不可枚举的。另外对象可以继承其他对象的属性,那些已继承的用户定义的属性可以使用该方法循环枚举出来。因为迭代的顺序是依赖于执行环境的,所以数组遍历不一定按次序访问元素。因此当迭代访问顺序很重要的数组时,最好用整数索引去进行for循环(或者使用 Array.prototype.forEach()for...of 循环)
    JavaScript遍历方法比较

  • forEach : 遍历数组,是数组的一个方法。需要传入一个回调函数,并且无法使用return退出当前函数。
    JavaScript遍历方法比较