区别是:forEach一般用于对数组的遍历,不用于对对象的遍历,此方法会对数组中的每一个值进行遍历,直至全部遍历完成。for in一般用于遍历对象,循环遍历对象的key,不推荐遍历数组。for of一般用于遍历对象,循环遍历对象的value,它可以正常的响应break、return、continue。
js中的forEach、for-in-、for-of的区别是:forEach一般用于对数组的遍历,不用于对对象的遍历,此方法会对数组中的每一个值进行遍历,直至全部遍历完成。故在其中的return,break会失效。for in一般用于遍历对象,循环遍历对象的key,不推荐遍历数组。for of一般用于遍历对象,循环遍历对象的value,与forEach不同的是,它可以正常的响应break, return,continue。
forEach:(可以三个参数,第一个是value,第二个是index,第三个是数组体)
缺点:不能同时遍历多个集合,在遍历的时候无法修改和删除集合数据,
方法不能使用break,continue语句跳出循环,或者使用return从函数体返回,对于空数组不会执行回调函数
优点:便利的时候更加简洁,效率和for循环相同,不用关心集合下标的问题,减少了出错的效率*
定义:用于调用数组的每个元素,并将元素传递给回调函数*
for in:(它大部分用于遍历对象)
定义:用于循环遍历数组或对象属性,fot in循环里面的index是string类型的,
代码每执行一次,就会对数组的元素或者对象的属性进行一次操作*
缺点:某些情况下,会出现随机顺序的遍历,因为里面的值是string类型,所以 增加了转换过程,因此开销较大
优点:可以遍历数组的键名,遍历对象简洁方便
for of:(可遍历map,object,array,set string等)用来遍历数据,比如组中的值,
map,set会在下篇文章详解,这节只查看遍历对象和数组
优点:避免了for in的所有缺点,可以使用break,continue和return,不仅支持
数组的遍历,还可以遍历类似数组的对象,支持字符串的遍历 最简洁,最直接的遍历数组的语法 支持map和Set对象遍历*
缺点:不适用于处理原有的原生对象(原生对象是一个子集,包含一些在运动过程中动态创建的对象)
延伸阅读:
什么是JS?
JavaScript(简称“JS”)是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。
JavaScript在1995年由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。
JavaScript的标准是ECMAScript。截至2012年,所有浏览器都完整的支持ECMAScript 5。1,旧版本的浏览器至少支持ECMAScript 3标准。2015年6月17日,ECMA国际组织发布了ECMAScript的第六版,该版本正式名称为ECMAScript 2015,但通常被称为ECMAScript 6或者ES2015。
文章标题:js中的forEach、for-in-、for-of的区别,发布者:Flawy,转载请注明出处:https://worktile.com/kb/p/52923