JS中的Map、Set、WeakMap和WeakSet怎么使用

发布时间:2023-04-26 11:18:01 作者:iii
来源:亿速云 阅读:107

本文小编为大家详细介绍“JS中的Map、Set、WeakMap和WeakSet怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“JS中的Map、Set、WeakMap和WeakSet怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

在JavaScript中,Map、Set、WeakMap和WeakSet是四个不同的数据结构,它们都有不同的特点和用途:

下面是Map、Set、WeakMap和WeakSet的例子:

1. Map:

const myMap = new Map();
const key1 = 'key1';
const key2 = { name: 'John' };
const key3 = function () { console.log('Hello!'); };
myMap.set(key1, 'value1');
myMap.set(key2, 'value2');
myMap.set(key3, 'value3');
console.log(myMap.get(key1)); // 'value1'
console.log(myMap.get(key2)); // 'value2'
console.log(myMap.get(key3)); // 'value3'
console.log(myMap.size); // 3

在这个例子中,我们创建了一个Map对象,并使用三个不同类型的键(key1、key2、key3)来存储三个值(value1、value2、value3)。我们可以使用get()方法来获取相应的值,使用size属性来获取键值对的数量。

2. Set:

const mySet = new Set();
mySet.add('value1');
mySet.add('value2');
mySet.add('value3');
console.log(mySet.has('value1')); // true
console.log(mySet.has('value4')); // false
console.log(mySet.size); // 3
mySet.delete('value2');
console.log(mySet.size); // 2

在这个例子中,我们创建了一个Set对象,并使用add()方法向其中添加三个值(value1、value2、value3)。我们可以使用has()方法来检查集合中是否存在某个值,使用size属性来获取集合的大小,使用delete()方法来删除值。

3. WeakMap:

let key1 = { name: 'John' };
let key2 = { name: 'Mary' };
let weakMap = new WeakMap();
weakMap.set(key1, 'value1');
weakMap.set(key2, 'value2');
key1 = null;
console.log(weakMap.get(key1)); // undefined
console.log(weakMap.get(key2)); // 'value2'

在这个例子中,我们创建了一个WeakMap对象,并使用两个对象键(key1、key2)来存储两个值(value1、value2)。然后我们将key1赋值为null,这将导致key1对象被垃圾回收,它们与值value1一起被从WeakMap中删除。当我们使用get()方法尝试访问已经被删除的键时,返回undefined。

4. WeakSet:

let obj1 = { name: 'John' };
let obj2 = { name: 'Mary' };
let weakSet = new WeakSet([obj1, obj2]);
console.log(weakSet.has(obj1)); // true
obj1 = null;
console.log(weakSet.has(obj1)); // false

在这个例子中,我们创建了一个WeakSet对象,并向其中添加两个对象(obj1、obj2)。我们可以使用has()方法检查WeakSet中是否存在某个对象,当我们将obj1赋值为null时,它们与值一起被从WeakSet中删除。当我们使用has()方法尝试访问已经被删除的对象时,返回false。

下面是Map、Set、WeakMap和WeakSet之间的区别和使用场景:

1. Map和Set:

MapSet都是集合数据结构,不同之处在于:

使用场景:

2. WeakMap和WeakSet:

WeakMapWeakSetMapSet类似,但是它们的键或值是弱引用,也就是说当键或值对象没有其他引用时,它们可以被垃圾回收,不会影响程序的内存使用情况。不同之处在于:

使用场景:

读到这里,这篇“JS中的Map、Set、WeakMap和WeakSet怎么使用”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. IIS启用GZIP压缩js、css无效怎么解决
  2. TE对象message js脚本简单写法是什么

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

js set map

上一篇:Python中的输入与输出是什么

下一篇:MySQL视图、函数和存储过程是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》