【js】Set 、 Map、WeakSet

JavaScript 的 Set 和 Map 是两种数据结构,而 WeakSet 是一种特殊类型的 Set。以下是关于它们的详细说明和代码示例:

1、Set

Set 是一种集合,它允许存储多个值,并且每个值只能存储一次。它具有以下方法:

add(value):向 Set 中添加一个新值。
has(value):判断某个值是否存在于 Set 中。
delete(value):从 Set 中删除某个值。
clear():清空整个 Set。
示例代码:

const mySet = new Set();
mySet.add(1);
mySet.add(2);
console.log(mySet); // Set {1, 2}
console.log(mySet.has(1)); // true
console.log(mySet.has(3)); // false
mySet.delete(2);
console.log(mySet); // Set {1}
mySet.clear();
console.log(mySet); // Set {}

2、Map

Map 是一种映射,它允许存储键值对,并且每个键名必须是唯一的。它具有以下方法:

set(key, value):向 Map 中添加一个新的键值对。
get(key):根据键名获取对应的键值。
has(key):判断某个键名是否存在于 Map 中。
delete(key):根据键名从 Map 中删除对应的键值对。
clear():清空整个 Map。
示例代码:

const myMap = new Map();
myMap.set('name', 'Alice');
myMap.set('age', 20);
console.log(myMap); // Map { 'name' => 'Alice', 'age' => 20 }
console.log(myMap.get('name')); // 'Alice'
console.log(myMap.has('age')); // true
console.log(myMap.has('height')); // false
myMap.delete('age');
console.log(myMap); // Map { 'name' => 'Alice' }
myMap.clear();
console.log(myMap); // Map {}

3、WeakSet

WeakSet 是一种特殊类型的 Set,它只能存储对象类型作为其元素。这意味着你不能将其他类型的值(如数字、字符串等)添加到 WeakSet 中。WeakSet 中的对象不会被垃圾回收,除非它们没有任何其他引用。这使得 WeakSet 可以用来存储与某些对象关联的附加信息,而不会阻止这些对象被垃圾回收。

示例代码:

const ws = new WeakSet();
const obj = {}; // 必须是一个对象类型才能被添加到 WeakSet 中
ws.add(obj); // 将 obj 添加到 WeakSet 中
console.log(ws.has(obj)); // true
ws.delete(obj); // 从 WeakSet 中删除 obj
console.log(ws.has(obj)); // false

你可能感兴趣的:(前端,javascript,前端,开发语言)