JS中(for of, for in, forEach, map)的区别

for of

  • 具备iterator接口,就能够用for of循环遍历它的成员(属性值)。
  • for of 可使用的范围包括:数组、Set和Map结构、某些相似数组的对象、Generator对象、字符串
  • for of循环调用遍历器接口,数组的遍历器接口只返回具备数字索引的属性,对于普通的对象不能使用for of直接遍历,须要部署iterator接口才能使用
  • 能够中断循环

for in

  • 遍历对象自身的和继承的可枚举的属性
  • 不能直接获取属性值
  • 能够中断循环

Object.hasOwnPrototype 能够判断对象是否具备该属性数组


forEach

  • 只能遍历数组
  • 不能中断循环
  • 没有返回值(返回undefined)

map

  • 只能遍历数组
  • 返回一个新的数组
  • 不能中断循环
相关文章
相关标签/搜索