本文摘自PHP中文网,作者hzc,侵删。
Object.entries返回对象所有可枚举
的键值对,不会追寻原型链上的 key
1 2 3 4 5 6 7 8 9 10 |
|
Object.keys
返回对象所有可枚举的键
1 2 3 4 5 6 7 8 |
|
Object.values
返回对象所有可枚举的值
1 2 3 4 5 6 7 8 |
|
for…in loop
迭代可枚举属性,会顺着原型链找下去
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
Object.getOwnPropertyNames
返回对象所有(包括不可枚举)的键(原文说会找原型链是错的)
1 2 3 4 5 6 7 8 |
|
性能比较
下面的代码用上面的几种方法遍历有 1000000 个属性的对象,循环 10 次
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
|
下面的结果是我自己跑的,顺序的是指赋值的时候直接用 index,随机则是键值对都插入随机数,得到的性能排序是和作者一样的,也因为 node.js 和 chrome 都是 V8,所以这个应该也是代表在浏览器上的性能排序。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
之前听说引擎会猜测下一个值让运行速度更快,看数据似乎没有太大影响。
也算是一点干货,快点来原文给作者鼓鼓掌吧
推荐教程:《JS教程》
以上就是JavaScript对象迭代方法和性能的比较的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
更多相关阅读请进入《javascript》频道 >>
Vue.js 设计与实现 基于Vue.js 3 深入解析Vue.js 设计细节
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者