ES5的话也可以使用forEach,ES5具有遍历数组功能的还有map、filter、some、every、reduce、reduceRight等,只不过他们的返回结果不一样。但是使用 forEach 遍历数组的话,使用 break 不能中断循环,使用 return 也不能返回到外层函数。
for in使用for in会遍历数组所有的可枚举属性,包括原型。所以for in更适合遍历对象。
for (var key in myObject) { if(myObject.hasOwnProperty(key)){ console.log(key); }}记住,for in遍历的是数组的索引(即键名),而 for of 遍历的是数组元素值。
for of适用遍历数/数组对象/字符串/map/set等拥有迭代器对象的集合.但是不能遍历对象,因为没有迭代器对象。
也可通过以下形式使用 for of 遍历对象
方法返回一个由指定对象的所有自身属性的属性名(包括不可枚举属性但不包括Symbol值作为名称的属性)组成的数组。
性能接下来我们对比一下 for in、for、 while 的执行效率