JS中Map和WeakMap的区别
发布时间
阅读量:
阅读量
在JavaScript语言中,Map与WeakMap均为用于存储键值对数据结构的集合类型。二者的核心差异主要体现在键的类型限制以及存储机制方面。
关于键的类型:Map允许使用任意类型的键,包括对象、基础数据类型(如字符串、数值)乃至函数等。相比之下,WeakMap中的键仅限于对象类型,无法使用其他基础数据类型作为键。
关于存储机制:Map采用强引用方式保存键值对,这意味着只要Map实例仍然存在于内存中,其内部的所有键值对都将被保留,不会受到垃圾回收机制的影响。而WeakMap则采用弱引用方式处理键对象,当外部不存在对该键对象的引用时,该键值对将被垃圾回收系统自动清除,从而有助于提升内存使用效率。
以下为具体代码示例:
// Map的使用
let map = new Map();
let keyString = "字符串";
let keyObj = {};
let keyFunc = function() {};
// 设置键值对
map.set(keyString, "这是一个字符串");
map.set(keyObj, "这是一个对象");
map.set(keyFunc, "这是一个函数");
// 获取值
console.l
全部评论 (0)
还没有任何评论哟~
