hak*_*ick 7 javascript performance big-o
Mozilla的网站清楚地描述了hasOwnProperty()和in运营商.
但是,它没有提供有关其效率的任何实施细节.
我怀疑它们是O(1)(恒定时间)但是很想看到可能存在的任何参考或测试.
将我的评论转化为答案.
hasOwnProperty() 应该是O(1),因为它是一个关键查找,但它将是特定于实现.
in肯定会更复杂(尽管应该与hasOwnProperty()该对象上的属性存在相同),因为它在原型链上,寻找该属性.这就是为什么经常建议hasOwnProperty()在迭代对象属性时使用for ( in ).
要查明,请检查这些功能的源代码.使用来源,卢克:)
我的理论是in应该比更快hasOwnProperty()。in是hasProperty()(根据标准:http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf-参见第79页)的代理,该代理是内部广泛使用的功能语言(并会进行高度优化)。实际上,测试表明,平均而言,in速度更快。
链接:http://jsfiddle.net/VhhzR/2/
在Firefox中,in绝对更快。在Chrome中,in只有处理复杂的对象(令人费解)时,速度才会更快。在Internet Explorer中,in再次领先。
希望这对您有所帮助:)
| 归档时间: |
|
| 查看次数: |
2276 次 |
| 最近记录: |