问:for in 与for of 的区别?

236 阅读1分钟

一、 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