一、 for in VS for of
| for in | for of |
|---|---|
| 1 适合遍历对象 | 适合遍历拥有迭代器对象的集合,不包括对象 |
| 2 遍历的是key | 遍历的value |
| 3 遍历可枚举的所有属性(包括原型上的) | 不包括原型上的 |
| 4 可以正确响应break continue | 也可以正确响应break continue |
二、如何让for of遍历对象呢
给对象原型上加[Symbol.iteator]属性, 属性值是个函数,返回的是一个迭代器对象,有next()方法
例如:arr[Symbol.iteator]();
三、关于Array.from() 方法
- 从一个类似数组或可迭代对象中创建一个新的,浅拷贝的数组实例
- 将非数组对象转换为数组
- console.log(Array.from('HLEE')) // ["H", "L", "E", "E"]
四、跳出循环
return break continue throw error