JavaScript Map 对象使用指南:创建、操作与对比 Object
作者:异步漫步时间:2026-10-26 11:01:55浏览:186
本文详细介绍JavaScript中Map对象的核心用法,涵盖创建Map、设置键值对、获取与删除指定元素以及遍历操作。同时深入解析Map与普通Object在键类型、插入顺序、尺寸获取及原型链等方面的关键区别,帮助开发者根据场景选择合适的数据结构。
JS中的Map对象
1.js创建map对象
var map = new Map();2.将键值对放入map对象
map.set("key",value)
map.set("key1",value1)
map.set("key2",value2)3.根据key获取map值
map.get(key)4.删除map指定对象
delete map[key]或
map.delete(key)5.循环遍历map
map.forEach(function(key){
console.log("key",key) //输出的是map中的value值
})JS中Map和普通对象
Map对象
Map 对象用于存储键值对,其中任何类型的值(包括对象、数组、字符串、数值、布尔值、null 或 undefined)均可作为键或值。
Map 对象在迭代时遵循元素的插入顺序,使用 for...of 循环遍历会返回形式为 [key, value] 的数组。
Object对象
Object 构造函数用于创建对象包装器,其内容为由冒号分隔的名称(字符串)与值(任意值)组成的键值对。
Objects 和 maps 的比较
Objects 和 Maps 均支持按键存取值、删除键以及检测键是否绑定值,因此过去常将对象当作 Maps 使用。但在特定场景下,使用 Map 是更优选择,主要区别如下:
| Map | Object | |
|---|---|---|
| 意外的键 | Map 默认情况不包含任何键。只包含显式插入的键。 | 一个 Object 有一个原型, 原型链上的键名有可能和你自己在对象上的设置的键名产生冲突。注意: 虽然 ES5 开始可以用 Object.create(null) 来创建一个没有原型的对象,但是这种用法不太常见。 |
| 键的类型 | 一个 Map的键可以是任意值,包括函数、对象或任意基本类型。 | 一个Object 的键必须是一个 String 或是Symbol。 |
| 键的顺序 | Map 中的 key 是有序的。因此,当迭代的时候,一个 Map 对象以插入的顺序返回键值。 | 一个 Object 的键是无序的注意:自ECMAScript 2015规范以来,对象确实保留了字符串和Symbol键的创建顺序; 因此,在只有字符串键的对象上进行迭代将按插入顺序产生键。 |
| Size | Map 的键值对个数可以轻易地通过size 属性获取 | Object 的键值对个数只能手动计算 |
| 迭代 | Map 是 iterable 的,所以可以直接被迭代。 | 迭代一个Object需要以某种方式获取它的键然后才能迭代。 |
| 性能 | 在频繁增删键值对的场景下表现更好。 | 在频繁添加和删除键值对的场景下未作出优化。 |
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。
作者最新文章
D3.js 比例尺与坐标轴的配置详解
2026-11-05 16:54:46
JavaScript怎么遍历对象的Symbol键和不可枚举属性
2026-11-05 13:13:39
封装一个健壮的JS字符串判空工具函数
2026-11-05 12:16:14
JavaScript合并数组的三种常用方法:concat、扩展运算符与push
2026-11-05 11:22:29
JavaScript立即执行函数(IIFE)是什么及基本语法
2026-11-05 10:51:19
