Javascript JS哈希映射真的是哈希映射吗?

Javascript JS哈希映射真的是哈希映射吗?,javascript,performance,hash,Javascript,Performance,Hash,我已经阅读了很多关于javascript哈希映射的书籍,包括stackoverflow。许多人似乎也建议如何创建和使用哈希映射 我的问题更基本,javascript哈希映射查找真的是O1吗。有一次,一位同事告诉我,Javascript没有任何哈希映射实现,因此在内部,引擎仍将为您迭代集合,当它找到匹配项时,将显示它 现在,这可能因引擎而异,但从性能角度来看,我很好奇键值对是否比迭代和匹配更好。严格来说,没有定义的实现,但在现代JavaScript运行时环境中,您的同事肯定是错的。对象属性查找是高

我已经阅读了很多关于javascript哈希映射的书籍,包括stackoverflow。许多人似乎也建议如何创建和使用哈希映射

我的问题更基本,javascript哈希映射查找真的是O1吗。有一次,一位同事告诉我,Javascript没有任何哈希映射实现,因此在内部,引擎仍将为您迭代集合,当它找到匹配项时,将显示它


现在,这可能因引擎而异,但从性能角度来看,我很好奇键值对是否比迭代和匹配更好。

严格来说,没有定义的实现,但在现代JavaScript运行时环境中,您的同事肯定是错的。对象属性查找是高度优化的。值得注意的是,javascript实现是基于浏览器的。这在不同的浏览器之间是不可能的。顺便说一句,对象属性查找通常不涉及哈希映射,如果您感兴趣,它涉及更快的内容,阅读V8的隐藏类和其他JIT编译器中的类似概念。回到问题上来:你记得你的同事给了你更多的细节吗?你能问他们而不是我们吗?这两种方法都会大大有助于解决这个问题,因为它们目前要么过于琐碎。是答案还是解释对象的各种实现方式及其性能影响太过开放。JS可以迭代-'for prop in data{..'-或直接访问'obj.obj.val',可能需要为性能var cachedobjofobj=obj.obj.obj.obj;-缓存选择器,以满足应用程序的需要。也许您和您的同事在不同的语言语义上有不同的目的,所以这不是一个容易回答的问题。