JavaScript映射和哈希表

JavaScript映射和哈希表,javascript,hashtable,Javascript,Hashtable,我想以前没有人问过这个问题。它是关于Javascript映射的: var myMap = new Map(); Javascript映射和哈希表之间的关系是什么?映射是哈希表的实现吗 来自: 映射对象必须使用哈希表或其他机制实现,这些机制平均提供的访问时间与集合中的元素数呈次线性关系 因此,这取决于JavaScript引擎的实现,但它的实现方式必须与使用哈希表提供的好处相同,因此使用哈希表将是实现的明智方法。该规范明确禁止实现Map,因为查找条目涉及到对元素的线性搜索 该规范规定了贴图对象必须

我想以前没有人问过这个问题。它是关于Javascript映射的:

var myMap = new Map();
Javascript映射和哈希表之间的关系是什么?映射是哈希表的实现吗

来自:

映射对象必须使用哈希表或其他机制实现,这些机制平均提供的访问时间与集合中的元素数呈次线性关系

因此,这取决于JavaScript引擎的实现,但它的实现方式必须与使用哈希表提供的好处相同,因此使用哈希表将是实现的明智方法。该规范明确禁止实现Map,因为查找条目涉及到对元素的线性搜索

该规范规定了贴图对象必须如何工作。Chrome和Chrome中的JavaScript引擎V8和Node.js、Firefox中的SpiderMonkey、Safari中的JavaScriptCore、Edge中的Chakra。。。实施这种行为。他们如何做到这一点取决于他们,前提是他们的方式符合规范。

来自:

映射对象必须使用哈希表或其他机制实现,这些机制平均提供的访问时间与集合中的元素数呈次线性关系

因此,这取决于JavaScript引擎的实现,但它的实现方式必须与使用哈希表提供的好处相同,因此使用哈希表将是实现的明智方法。该规范明确禁止实现Map,因为查找条目涉及到对元素的线性搜索


该规范规定了贴图对象必须如何工作。Chrome和Chrome中的JavaScript引擎V8和Node.js、Firefox中的SpiderMonkey、Safari中的JavaScriptCore、Edge中的Chakra。。。实施这种行为。他们如何做到这一点取决于他们,前提是他们的做法符合规范。

谢谢@DeblatonJean-Philippe,但我在你的链接中没有看到任何与问题相关的内容。谢谢@DeblatonJean-Philippe,但我在你的链接中没有看到任何与问题相关的内容。谢谢!嗯,我想我现在被“实施”这个词弄糊涂了。我以为那张地图已经实现了。因此,调用Map将创建它的一个实例,而无需实现任何其他功能。我错在哪里?那些创建JavaScript引擎的人,比如Google Chrome中的V8引擎,或者MS Edge中的Chakra引擎,等等,都是用C或其他语言来实现JavaScript映射行为,以创建JS引擎。该规范说,如果你正在制作一个新浏览器或一个新的无浏览器引擎,你的映射必须比查看每个元素和比较键更快。“实现”意味着如何在浏览器中编译和执行JS,浏览器使用的是低级语言,主要是AFAIK,C++的说明说明了地图应该如何编译和执行…现在我得到了:谢谢@ T.J.Cuuldor!现在很清楚了。因此,当我们调用newmap时,我们要求引擎使用Javascript规范中描述的行为创建一个对象,而不管这种行为是如何生成的。并且可以用不同类型的结构和逻辑创建一个映射,作为其中之一的哈希表。谢谢!嗯,我想我现在被“实施”这个词弄糊涂了。我以为那张地图已经实现了。因此,调用Map将创建它的一个实例,而无需实现任何其他功能。我错在哪里?那些创建JavaScript引擎的人,比如Google Chrome中的V8引擎,或者MS Edge中的Chakra引擎,等等,都是用C或其他语言来实现JavaScript映射行为,以创建JS引擎。该规范说,如果你正在制作一个新浏览器或一个新的无浏览器引擎,你的映射必须比查看每个元素和比较键更快。“实现”意味着如何在浏览器中编译和执行JS,浏览器使用的是低级语言,主要是AFAIK,C++的说明说明了地图应该如何编译和执行…现在我得到了:谢谢@ T.J.Cuuldor!现在很清楚了。因此,当我们调用newmap时,我们要求引擎使用Javascript规范中描述的行为创建一个对象,而不管这种行为是如何生成的。可以用不同类型的结构和逻辑创建一个映射,作为其中之一的哈希表。