我想知道访问JavaScript对象,点运算符或[]
的最佳方式是什么:
data.property
或data["property"]
?
答案 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"]()
更容易阅读,编写和处理)并且当键名是变量或具有非法字符时使用括号