原文地址:Iterating Over JavaScript Object Entries and their Performance - 5 Techniques
Object.entries
返回对象所有可枚举的键值对,不会追寻原型链上的 key
Object.keys
返回对象所有可枚举的键
Object.values
返回对象所有可枚举的值
for…in loop
迭代可枚举属性,会顺着原型链找下去
Object.getOwnPropertyNames
返回对象所有(包括不可枚举)的键(原文说会找原型链是错的)
性能比较
下面的代码用上面的几种方法遍历有 1000000 个属性的对象,循环 10 次
下面的结果是我自己跑的,顺序的是指赋值的时候直接用 index,随机则是键值对都插入随机数,得到的性能排序是和作者一样的,也因为 node.js 和 chrome 都是 V8,所以这个应该也是代表在浏览器上的性能排序。
之前听说引擎会猜测下一个值让运行速度更快,看数据似乎没有太大影响。
也算是一点干货,快点来原文给作者鼓鼓掌吧 👏