[原理链接] (https://juejin.im/post/5c40484bf265da61171cfb4d)
[code链接] (https://codepen.io/ewet/pen/wRVvqo?editors=1111)
个人总结:
1.不能遍历对象
2.原理:每个数组中都实现了一个Symbol.iterator()方法,这个方法中有一个next()方法,next方法输出每个项的值和是否后面还有值;
iterator.next(); // 输出 {value: 1, done: false}
iterator.next(); // 输出 {value: 2, done: false}
iterator.next(); // 输出 {value: 3, done: false}
iterator.next(); // 输出 {value: undefined, done: true}
3.Generators
Generator 可以实例化出一个 iterator ,并且其中的 yield 语句中包含了一个next方法,就是用来中断代码的执行的,也就是说,配合 next() 方法,每次只会执行一个 yield 语句。
generator函数中可以使用return中断这个函数;
4.for in 可以对一个对象进行遍历;