6. for of

1. 遍历范围

for…of 循环可以使用的范围包括:

  • 数组
  • Set
  • Map
  • 类数组对象,如 arguments 对象、DOM NodeList 对象
  • Generator 对象
  • 字符串

2. 优势

ES2015 引入了 for..of 循环,它结合了 forEach 的简洁性和中断循环的能力:

  1. // 例子 6-1
  2.  
  3. for (const v of ['a', 'b', 'c']) {
  4. console.log(v);
  5. }
  6. // a b c
  7.  
  8. for (const [i, v] of ['a', 'b', 'c'].entries()) {
  9. console.log(i, v);
  10. }
  11. // 0 "a"
  12. // 1 "b"
  13. // 2 "c"

3. 遍历 Map

  1. // 例子 6-2
  2.  
  3. let map = new Map(arr);
  4.  
  5. // 遍历 key 值
  6. for (let key of map.keys()) {
  7. console.log(key);
  8. }
  9.  
  10. // 遍历 value 值
  11. for (let value of map.values()) {
  12. console.log(value);
  13. }
  14.  
  15. // 遍历 key 和 value 值(一)
  16. for (let item of map.entries()) {
  17. console.log(item[0], item[1]);
  18. }
  19.  
  20. // 遍历 key 和 value 值(二)
  21. for (let [key, value] of data) {
  22. console.log(key)
  23. }