访问对象中数据的复杂性

在我作为日常工作的一部分的一些项目中,我需要访问非常大的JS对象中的数据(数以千计的键值对)。 我试图提高我的代码的效率,所以我想出了几个问题:

  1. 当访问这样一个对象中的字段时,JS的运行时复杂度是多less? 我最初的预感是O(n)
  2. 通过点符号或括号表示访问时是否有区别? (例如obj.field vs obj[field]
  3. 我猜测对于不同的运行时引擎有不同的答案 – 有没有一个地方我可以看到它们之间的区别?

Javascript对象实际上是Hashes,所以所有引擎的复杂度是O(1)

obj.fieldobj['field']的别名,所以它们具有相同的性能。

你可以在这里find一些JS哈希性能testing,不幸的是只有你的浏览器引擎。