我想这个问题之前没有被提出过。它与JavaScript Map有关:
var myMap = new Map();
Javascript中的Map和哈希表有什么关系? Map是否是哈希表的一种实现?
我想这个问题之前没有被提出过。它与JavaScript Map有关:
var myMap = new Map();
Javascript中的Map和哈希表有什么关系? Map是否是哈希表的一种实现?
根据规范,Map对象必须使用哈希表或其他机制实现,平均提供对集合中元素数量次线性的访问时间。
这取决于JavaScript引擎的实现方式¹,但它必须以一种提供哈希表相同优势的方式实现,因此使用哈希表是一个明智的方法。规范明确禁止实现
Map
时通过线性搜索元素来查找条目。
¹ 规范指定了Map
对象的行为方式。JavaScript引擎(如Chrome和Chromium和Node.js中的V8,Firefox中的SpiderMonkey,Safari中的JavaScriptCore,Edge中的Chakra...)实现该行为。只要它们按照规范一致地执行即可。
Map()
就会创建一个它的实例,而无需实现任何其他东西。我错在哪里了? - user7499416Map
行为。规范说明,如果你正在开发新的浏览器(或无浏览器引擎),那么你的Map
必须比遍历每个元素并比较键更快。 - Amadannew Map()
时,我们要求引擎创建一个具有JavaScript规范中描述的行为的对象,而不管这种行为是如何生成的。Map可以使用不同类型的结构和逻辑创建,其中哈希表就是其中之一。 - user7499416