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

  • 只能遍歷數組
  • 返回一個新的數組
  • 不能中斷循環
相關文章
相關標籤/搜索