for、forEach、map、for in、for of区别

484 阅读1分钟

for和forEach

  • for循环是可以中断循环(利用break语句或return语句),但forEach不可以中断循环
  • for循环可以控制循环起点(i初始化的数字决定循环的起点),forEach只能默认从索引0开始

forEach在遍历跑完回调函数后,会隐性让index自增

const array1 = ['a', 'b', 'c']
array1.forEach((element,index) => array1.splice(index,1))
console.log(array1) // ['a', 'b', 'c']

forEach和map

  • forEach和map都不会改变原数组

  • forEach和map里每次执行匿名函数都支持3个参数,参数分别是item(当前每一项),index(索引值),arr(原数组)

  • forEach和map都不会对空数组进行检测,若arr为空数组,则map方法返回的也是一个空数组

  • map方法返回一个新的数组,数组中的元素为原始数组调用函数处理后的值

  • forEach()的执行速度 < map()的执行速度

for in和for of

  • for in只能获得对象的键名,不能获得键值
  • for of遍历获得键值
  • for of不能对象用
  • for of 和for in都可以break、continue 和 return 配合使用