基本语法

迭代 Array

let arr = [10, 20, 30];

for (let value of arr) {
    value += 1;
    console.log(value);
}
// 11
// 21
// 31

迭代字符串

let str = '你好';

for (let value of str) {
    console.log(value);
}
// 你
// 好

迭代 TypedArray

let iterable = new Uint8Array([0x00, 0xff]);

for (let value of iterable) {
  console.log(value);
}
// 0
// 255

迭代 Set 和 Map

let setArr = new Set([1, 1, 2, 2, 3, 3]);
for (let value of setArr) {
  console.log(value);
}
// 1
// 2
// 3

let map = new Map([["a", 1], ["b", 2], ["c", 3]]);
for (let [key, value] of map) {
  console.log(key, value);
}
// a 1
// b 2
// c 3

迭代类数组对象

  1. 迭代 argument 对象

    function argfn() {
      for (let argument of arguments) {
        console.log(argument);
      }
    }
    argfn(1,2,3)
    // 1
    // 2
    // 3
    
  2. 迭代 DOM 集合

    //注意:这只能在实现了 NodeList.prototype[Symbol.iterator] 的平台上运行
    let prags = document.querySelectorAll("p");
    
    for (let value of prags) {
      value.classList.add("read");
    }
    

知识对比

  1. 对比 for

    • 最原始的语法是 for 循环语句,但是这种写法比较麻烦,每个步骤的信息都需要手动地去处理
  2. 对比 forEach

    • 数组中内置了 forEach 方法,这个方法的致命缺点就是不能跳出循环,break 命令和 return 命令都不能奏效
  3. 对比 for…in

    • for…in 循环不仅遍历数字键名,还会遍历手动添加的其他键,甚至包括原型链上的键;
    • 某些情况下,for…in 循环以任意顺序遍历键名,主要是因为对象在内存中的数据类型决定的;
  4. for…of 的优点

    • 有着同 for…in 一样的简洁语法,但是没有 for…in 那些缺点;
    • 不同于 forEach 方法,它可以与 break、continue 和 return 配合使用;
    • 提供了遍历所有数据结构的统一操作接口;
打赏作者
您的打赏是我前进的动力
微信
支付宝
评论

中午好👏🏻,我是 ✍🏻   疯狂 codding 中...

粽子

这有关于产品、设计、开发的问题和看法,还有技术文档和你分享。

相信你可以在这里找到对你有用的知识和教程

了解更多

目录

  1. 1. 基本语法
    1. 1.1. 迭代 Array
    2. 1.2. 迭代字符串
    3. 1.3. 迭代 TypedArray
    4. 1.4. 迭代 Set 和 Map
    5. 1.5. 迭代类数组对象
  2. 2. 知识对比