a.b.c和a['b']['c']哪个性能更高
个人理解应该是 a.b.c 比 a['b']['c'] 性能高点,后者还要考虑 [ ] 中是变量的情况,
再者,从两种形式的结构来看,显然编译器解析前者要比后者容易些,自然也就快一点
构造深层数据结构测试一下
// 构造深层对象,{"key":{"key":{"key":{"key":{"key":{"key":{"key":"here"}}}}}}}
function compare(times) {
let obj = {
key: {}
}
let temp = obj
for(let i=0;i<times;i++) {
let t = temp['key']
t['key'] = {}
temp = t
}
temp['key']['key'] = 'here'
// console.log(JSON.stringify(obj));
// 访问obj.key.key...
console.time('a.key')
let o1 = obj
while(o1) {
if(o1 === 'here') {
break
}
o1 = o1.key
}
console.timeEnd('a.key')
// 访问obj['key']['key']
console.time(`a['key']`)
let o2 = obj
while(o2) {
if(o2 === 'here') {
break
}
o2 = o2['key']
}
console.timeEnd(`a['key']`)
}
compare(5000000)
// a.key: 81.062ms
// a['key']: 93.266ms