Javascript:关于hasOwnProperty和IndexOf的性能对比
程序员文章站
2023-11-27 16:39:04
javascript:关于hasownproperty和indexof的性能对比
今天做了一个小测试(测试环境node),测试了js的hasownproperty和indexof的性能对比。先来看一...
javascript:关于hasownproperty和indexof的性能对比
今天做了一个小测试(测试环境node),测试了js的hasownproperty和indexof的性能对比。先来看一下简单的测试demo
let arr = []; for(let i = 1;i <= 1000000;i++) { arr[i] = i; } console.time("indexof"); arr.indexof(1000000) console.timeend("indexof"); console.time('hasownproperty') arr.hasownproperty(1000000) console.timeend('hasownproperty')
给一个数组赋值了1000k个数,获取最后一个数的下标,查看消耗的时间
打印结果:
indexof: 1.252ms hasownproperty: 0.008ms
indexof的时间不是很稳定,有时候会飙到2ms多(这大概和机器的执行环境有关),但是对比起来,和hasownproperty就相差很大了,hasownproperty直接是微秒级别。
到底为什么会有这么大的差异。emmm,首先看一下indexof和hasproperty的原理。
indexof做的事情就是遍历整个数组,找到需要访问的数的位置,然后返回它的下标,这种情况下时间复杂度可以达到o(n)。
而hasownproperty就不同了,数组可以看作是一个键值对,键是数组的下标,值是对应下标的值,这样的话就很容易做hash,时间复杂度可以达到n(1)。
上一篇: 新手如何做英文站赚美元
下一篇: 个人网站 要兴趣还是要运营