括号表示法是否比访问对象属性的句点表示法慢?

Is bracket notation slower than period notation for accessing Object properties?

我团队的一位开发人员提到通过点表示法访问对象 属性 比括号表示法更快。例如:

var sample = { name: 'First Name' }
var nameBracket = sample['name']
var namePeriod = sample.name

在这种情况下,他们认为 namePeriod 的赋值会比 nameBracket 更快。

这是真的吗?如果是这样,为什么?如果不是,为什么不呢?

相关:如何检验这一假设或类似问题以确定 JS 函数速度?

当你想尝试测试不同方法的速度时,似乎事实上的工具是jsperf.com。

已经有人对此提出质疑,并为此创建了一个测试。

http://jsperf.com/dot-notation-vs-square-bracket-notation

结果好像差不多。导致速度变慢的原因是括号的内容是一个变量——此时编译器不能再对自己说 "Oh, ['foo'] is the same as .foo.. continuing on!".