问题标题几乎说明了一切:更长的键是否会导致查找速度变慢?是:
someObj["abcdefghijklmnopqrstuv"]
慢于:
someObj["a"]
另一个子问题是字符串中用作键的字符类型是否重要。字母数字键串更快吗?
我试图做一些研究;网上似乎没有太多关于这个的信息。任何帮助/见解将不胜感激。
问题标题几乎说明了一切:更长的键是否会导致查找速度变慢?是:
someObj["abcdefghijklmnopqrstuv"]
慢于:
someObj["a"]
另一个子问题是字符串中用作键的字符类型是否重要。字母数字键串更快吗?
我试图做一些研究;网上似乎没有太多关于这个的信息。任何帮助/见解将不胜感激。
一般来说没有。在大多数语言中,字符串文字是“实习的”,它对它们进行散列并使其查找速度更快。一般来说,不同的 javascript 引擎之间可能存在一些差异,但总的来说,如果它们实施得很好(咳嗽IE咳嗽),它应该是相当平等的。尤其是由于 javascript 引擎在不断开发,这(可能)是一件容易优化的事情,并且随着时间的推移情况会有所改善。
然而,一些引擎也限制了被保留的字符串的长度。YMMV 在不同的浏览器上。我们还可以从 jsperf 测试中看到一些见解(在问题的评论中链接)。Firefox 显然做了更积极的实习。
至于字符的类型,无论字符集如何,字符串都被视为一堆字节,因此这可能也无关紧要。引擎可能会优化可以以点表示法使用的键,但我没有任何证据证明这一点。