第 65 题: a.b.c.d 和 a['b']['c']['d'] 哪个性能更高?
别看这题,题目上每个字都能看懂,但是里面涉及到的知识,暗藏杀鸡,这题要往深处走,会涉及 ast 抽象语法树、编译原理、v8 内核对原生 js 实现问题,我觉得这个题是这篇文章里最难的一道题,所以我放在了开放题中的最后一题。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
看了楼顶的链接,知道了AST,还是很开心的。
菜
https://jsperf.com/dot-notation-vs-square-bracket-notation
实验证明dot notation更快,但深层原理不是太明白
应该是
a.b.c.d
比a['b']['c']['d']
性能高点,后者还要考虑[ ]
中是变量的情况,再者,从两种形式的结构来看,显然编译器解析前者要比后者容易些,自然也就快一点。下图是两者的 AST 对比: