不一样的ES6(一)

前言:本系列文章,主要是对深入浅出ES6的阅读理解,配合修复ES6单元测试的方式进行学习。不对的欢迎指正。

迭代器和for循环

  • for-of/for-in 要点:

    • 数组遍历用for-of
    • 相对foreach优点,可以用break, continue, return跳出

      1
      2
      3
      4
      5
      6
      7
      for (var value of myArray) {
      console.log(value);
      }
      //Map对象
      for (var [key, value] of phoneBookMap) {
      console.log(key + "'s phone number is: " + value);
      }
    • 对象遍历用for-in

      1
      2
      3
      4
      5
      var person = {fname:"John", lname:"Doe", age:25};
      var text = "";
      for (var x in person) {
      text += person[x] + " ";
      }
  • 迭代器

    • 关键词:Symbol.iterator.next()
    • 所有拥有Symbol.iterator的对象被称为可迭代的。
    • for-of循环首先调用集合的Symbol.iterator方法,紧接着返回一个新的迭代器对象。迭代器对象可以是任意具有.next()方法的对象;for-of循环将重复调用这个方法,每次循环调用一次。
      1
      2
      3
      // 因为jQuery对象与数组相似
      // 可以为其添加与数组一致的迭代器方法
      jQuery.prototype[Symbol.iterator] = Array.prototype[Symbol.iterator];