Hi FE !
Ai
git
前端面试题
前端小tip
  • vite
  • webpack
npm
  • vue2
  • vue3
react
GitHub
Ai
git
前端面试题
前端小tip
  • vite
  • webpack
npm
  • vue2
  • vue3
react
GitHub
  • JS 里面, 对于对象的读写, 是使用 object 好,还是 Map,性能差异如何🌟🌟

JS 里面, 对于对象的读写, 是使用 object 好,还是 Map,性能差异如何🌟🌟

性能角度:小规模、固定字符串键场景,Object 读写更快;动态键、复杂键类型或大规模数据场景,Map 性能更稳定。 功能角度:Map 在键类型灵活性、迭代便利性、动态修改等方面更优,Object 胜在简洁性和 JSON 兼容性。

优先用 Object: 存储固定结构的数据(如配置项、DTO),键为字符串且结构稳定。 需要简洁的点语法(obj.key)或解构赋值时。多层数据嵌套用Object,链式读取方便 需 JSON 序列化(Map 无法直接被 JSON.stringify 处理)。 优先用 Map: 键为非字符串类型(如用对象作为键)。 需要频繁添加 / 删除键值对,或动态性强的数据。 数据量大,频繁写入用Map 对写入顺序有要求使用Map,或需要快速获取键值对数量(size) 避免原型链污染(如存储用户输入的键)

Object V8对Object的处理有优化手段; 当对象属性较少或者key为数字类型时,会采用快属性,快属性使用线性结构存储。 当属性变多,为了确保新增跟删除的效率,会采用慢属性,使用键值对的方式存储属性内容。

Map Map的存储结构是hashMap 对比

Object的key只能是数字、字符串、Symbol;Map的key可以是任意类型;
Map是迭代对象;Object不可以迭代;
Map会记录写入顺序;Object会对key进行序列化后按照字典排序;
Map有内置各种操作函数;Object没有;

Object 适合静态、简单的键值对存储,语法简洁,内存占用低,静态访问速度快。 Map 适合动态、复杂的键值对场景(尤其是非字符串键、高频增删遍历),性能更稳定。

Edit this page
最近更新: 2025/12/2 01:46
Contributors: qdleader
qdleader
本站总访问量 129823次 | 本站访客数 12人