forEach

  1. myArray.forEach(function (value) {
  2. console.log(value);
  3. });

写法简单了许多,但也有短处:你不能中断循环(使用break语句或使用return语句。
JavaScript里还有一种循环方法:forin

for-in

  1. for-in循环实际是为循环”enumerable“对象而设计的:
  2. var obj = {a:1, b:2, c:3};
  3. for (var prop in obj) {
  4. console.log("obj." + prop + " = " + obj[prop]);
  5. }
  6. // 输出:
  7. // "obj.a = 1"
  8. // "obj.b = 2"
  9. // "obj.c = 3"

你也可以用它来循环一个数组:

  1. for (var index in myArray) { // 不推荐这样
  2. console.log(myArray[index]);
  3. }

不推荐用for-in来循环一个数组,因为,不像对象,数组的index跟普通的对象属性不一样,是重要的数值序列指标。
总之,forin是用来循环带有字符串key的对象的方法。

for-of

  1. 循环数组
  2. let iterable = [10, 20, 30];
  3. for (let value of iterable) {
  4. console.log(value);
  5. }
  6. // 10
  7. // 20
  8. // 30
  9. 可以使用const来替代let,这样它就变成了在循环里的不可修改的静态变量。
  10. let iterable = [10, 20, 30];
  11. for (const value of iterable) {
  12. console.log(value);
  13. }
  14. // 10
  15. // 20
  16. // 30
  17. 循环一个字符串:
  18. let iterable = "boo";
  19. for (let value of iterable) {
  20. console.log(value);
  21. }
  22. // "b"
  23. // "o"
  24. // "o"