首页 / ES6 / js es6 map weakmap
js es6 map weakmap
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了js es6 map weakmap,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1801字,纯文字阅读大概需要3分钟。
内容图文
![js es6 map weakmap](/upload/InfoBanner/zyjiaocheng/1246/59fe2210194142c9bddfc40e63ae3e0b.jpg)
前言
这里介绍一些map和weakmap的一些属性和他们不同之处。
正文
map
JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键。这给它的使用带来了很大的限制.
ES6 提供了 Map 数据结构。它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。也就是说,Object 结构提供了“字符串—值”的对应,Map 结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。如果你需要“键值对”的数据结构,Map 比 Object 更合适。
const m = new Map();
const o = {p: ‘Hello World‘};
m.set(o, ‘content‘)
m.get(o) // "content"
m.has(o) // true
m.delete(o) // true
m.has(o) // false
Map 也可以接受一个数组作为参数。该数组的成员是一个个表示键值对的数组。
const map = new Map([
[‘name‘, ‘张三‘],
[‘title‘, ‘Author‘]
]);
map.size // 2
map.has(‘name‘) // true
map.get(‘name‘) // "张三"
map.has(‘title‘) // true
map.get(‘title‘) // "Author"
如果对同一个键多次赋值,后面的值将覆盖前面的值。
const map = new Map();
map.set(1, ‘aaa‘).set(1, ‘bbb‘);
map.get(1) // "bbb"
实例的属性和操作方法:
(1)size 属性
(2)set(key, value)
(3)get(key)
(4)has(key)
(5)delete(key)
(6)clear()
{
let map = new Map();
map.set(‘foo‘, 11);
map.set(‘bar‘, 22);
map.size ;// 2
map.get(‘foo‘);//t1
map.has(‘boo‘); //true
map.delete(‘foo‘); //true
map.clear();
map.size // 0
}
遍历方法
Map 结构原生提供三个遍历器生成函数和一个遍历方法。
keys():返回键名的遍历器。
values():返回键值的遍历器。
entries():返回所有成员的遍历器。
forEach():遍历 Map 的所有成员。
Map 结构的默认遍历器接口(Symbol.iterator属性),就是entries方法。
WeakMap
WeakMap结构与Map结构类似,也是用于生成键值对的集合。
WeakMap与Map的区别有两点。
首先,WeakMap只接受对象作为键名(null除外),不接受其他类型的值作为键名。
其次,WeakMap的键名所指向的对象,不计入垃圾回收机制。
// WeakMap 可以使用 set 方法添加成员
const wm1 = new WeakMap();
const key = {foo: 1};
wm1.set(key, 2);
wm1.get(key) // 2
// WeakMap 也可以接受一个数组,
// 作为构造函数的参数
const k1 = [1, 2, 3];
const k2 = [4, 5, 6];
const wm2 = new WeakMap([[k1, ‘foo‘], [k2, ‘bar‘]]);
wm2.get(k2) // "bar"
WeakMap 的语法
WeakMap 与 Map 在 API 上的区别主要是两个,
一是没有遍历操作(即没有keys()、values()和entries()方法),也没有size属性。
二是无法清空,即不支持clear方法。因此,WeakMap只有四个方法可用:get()、set()、has()、delete()。
原文:https://www.cnblogs.com/aoximin/p/13195454.html
内容总结
以上是互联网集市为您收集整理的js es6 map weakmap全部内容,希望文章能够帮你解决js es6 map weakmap所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。