哪种访问JavaScript对象最快?

时间:2011-11-15 18:41:42

标签: javascript

我想知道访问JavaScript对象,点运算符或[]的最佳方式是什么:

data.propertydata["property"]

4 个答案:

答案 0 :(得分:2)

两者速度相同。此外,如果您关注访问附加到引用的字段的速度级别,我认为您可能会错误地调整代码。

答案 1 :(得分:2)

两者都或多或少相同,除了在Safari中,点符号明显更快。

最好将注意力集中在DOM操作,DOM大小和CSS复杂性作为Javascript应用程序中性能问题的主要来源。

也就是说,如果你在循环中进行大量的属性访问,那么局部变量将比属性访问或数组查找快得多。如果要重复访问对象属性,请将其复制到变量中。 不要使用“with”语句。它可以通过在范围链中引入另一个对象来减慢本地变量访问速度。

本地范围中定义的变量将比全局变量更快地访问,因为Javascript引擎首先在本地查看所有变量,然后检查全局范围内的所有变量。范围也可以嵌套,因此变量所在的嵌套链越远,查找所需的时间就越长。这就是为什么最好在局部变量中缓存像“document”这样的东西,如果要多次访问它的话。

答案 2 :(得分:0)

我冒昧地猜测data.property的速度要快得多,但可能难以衡量。确实,JSPerf shows no distinction

答案 3 :(得分:0)

访问对象属性的最佳方式通常与速度无关。 Dot运算符用于语法糖(IE this.hasElements()在大脑中比this["hasElements"]()更容易阅读,编写和处理)并且当键名是变量或具有非法字符时使用括号