括号表示法是否比访问对象属性的句点表示法慢?
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!".
我团队的一位开发人员提到通过点表示法访问对象 属性 比括号表示法更快。例如:
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!".