问题标题几乎说明了一切:更长的键会导致查询速度变慢吗?
是:

someObj["abcdefghijklmnopqrstuv"]

慢于:
someObj["a"]

另一个子问题是用作键的字符串中的字符类型是否重要。字母数字键串是否更快?

我试图做一些研究。网上似乎没有太多有关此的信息。任何帮助/见解将不胜感激。

最佳答案

一般没有在大多数语言中,字符串文字是' interned ',这会哈希它们并使其查找更快。通常,不同的javascript引擎之间可能会有一些差异,但是总体而言,如果实现得当(咳嗽IE咳嗽),则应该相当相等。特别是由于javascript引擎正在不断开发中,(很可能)这是很容易优化的事情,并且随着时间的推移情况会有所改善。

但是,某些引擎还对被拘禁的字符串的长度有限制。 YMMV在不同的浏览器上。我们还可以从jsperf测试中看到一些见解(在问题注释中链接)。 Firefox显然进行了更积极的实习。

至于字符类型,无论字符集如何,字符串都将被视为一堆字节,因此也可能无关紧要。引擎可能会优化keys that can be used in dot notation,但我没有任何证据。

08-19 08:51