React 前端导航

Map 与 Object 的差异

在 ES6 以前,js 通过 Object 来实现键值对存储,自 ES6 开始,Map 是一种新的集合类型,为这门语言带来了真正的键值对存储机制,Map 大部分特性都能通过 Object 类型实现,但二者之间存在一些细微的差异。

1. Map实现了迭代器接口,与 Object 的一个主要的区别是,Map 会维护键值对的插入顺序,因此可以根据插入顺序执行迭代操作。

2. Object 的键只能是数值,字符串,symbol,而 Map 的键值可以是 js 的任何数据类型。

3. 给固定大小的内存,Map大概可以比Object多存储 50% 的键值对

4. 如果代码中涉及大量的插入操作,那么 Map 的性能更佳

5. 从大型 Object 和 Map 中查找键值对的性能差异较小,但如果只包含少量的键值对,则 Object 有时候速度更佳。在把 Object 当作数组使用的情况下,即,使用连续的整数作为属性,浏览器可以进行优化,在内存中使用更高效的布局,这对 Map 是不可能的。

6. 如果代码中涉及大量的删除操作,那么Map的性能更佳。

声明:本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。邮箱:farmerlzj@163.com。 本站原创内容未经允许不得转载,或转载时需注明出处: 内容转载自: React前端网:https://qianduan.shop/blogs/detail/239

#js#Map#Object

相关推荐

原型与原型链、继承

原型与原型链、继承简单实现

浏览器中的js事件循环(Event loop)

本文将简述浏览器中的js事件循环机制,帮助我们理解浏览器环境js代码是如何运行的。Javascript的一大特点是单线程,也就意味着同一时间他只能做一件事。事件循环(Event Loop)是为了协调事件,用户交互,UI渲染,网络处理等行为,防止线程阻塞而诞生的。