博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
for of, for in, forEach比较
阅读量:6037 次
发布时间:2019-06-20

本文共 740 字,大约阅读时间需要 2 分钟。

forEach

forEach无法中途跳出forEach循环,break、continue和return都不奏效。

for in

for...in 循环只遍历可枚举属性。

像 Array和 Object使用内置构造函数所创建的对象都会继承自Object.prototype和String.prototype的不可枚举属性,例如 String 的 indexOf() 方法或 Object的toString()方法。

循环将遍历对象本身的所有可枚举属性,以及对象从其构造函数原型中继承的属性(更接近原型链中对象的属性覆盖原型属性)。

for...in不应该用于迭代一个 Array,其中索引顺序很重要。

for in 循环的输出顺序问题

先遍历出整数属性(integer properties,按照升序),然后其他属性按照创建时候的顺序遍历出来。

var obj = {  a:1,  '2':1,  '1':1,  d:1,  c:1,  '3':1}obj.b=66;for (var key in obj) { console.log(key ); }    //"1", "2", "3", "a", "d", "c", "b"Object.keys(obj);                              //["1", "2", "3", "a", "d", "c", "b"]
Object.keys()和for in 具有相同的排列顺序

for of

有着同for...in一样的简洁语法,但是没有for...in那些缺点。

不同于forEach方法,它可以与break、continue和return配合使用。
提供了遍历所有数据结构的统一操作接口。

转载地址:http://fslhx.baihongyu.com/

你可能感兴趣的文章
[2014AMC]Navier-Stokes equations with regularity in two entries of the velocity gradient tensor
查看>>
java多线程:ReentrantReadWriteLock读写锁使用
查看>>
salesforce 零基础开发入门学习(三)sObject简单介绍以及简单DML操作(SOQL)
查看>>
OGG常见问题处理
查看>>
Mysql 自增列 主键
查看>>
Android Studio中提示:Project SDK is not defined
查看>>
NOIP2015pj求和
查看>>
ASP.NET Core 中文文档 第四章 MVC(2.1)模型绑定
查看>>
【Linux】rpm常用命令及rpm参数介绍
查看>>
能上架App的GooglePlay开发者账号获取流程
查看>>
WIN7 WIN10赋予文件或者文件夹完全访问权限
查看>>
Myeclipse创建Maven项目
查看>>
[datatable]排序时指定某列不可排序
查看>>
JSON类库 Flexjson学习
查看>>
阅读笔记 - 几篇性能测试博文的要点摘要
查看>>
slidingmenu + fragment 左右菜单滑动
查看>>
nginx软负载的搭建
查看>>
Storm的数据处理编程单元:Bolt 学习整理
查看>>
新浪微博客户端(33)-显示头像上的认证类型
查看>>
Bloomberg面经准备: Josephus problem
查看>>