ES6 Map 和 WeakMap
Map存储是以键值对的形式存在
- let map = new Map([[key,value],[key2,value2]])
- map.set(key,value)
- map.get(key)
- map.delete(key)
- map.has(key)
- map.clear()
- // map中key可以是任意的属性,比如数字、字符串、对象、bool...
// Map 它的key键名的类型不再局限于字符串类型了,它可以是各种类型的值 let m = new Map([ ['name', 'wangeu'], [12, 15], [null, 6], [{name: 'zhaosi'}, 7] ]) console.log(m); // size属性 获取实例的成员数。 console.log(m.size); //4 ///set() 给实例设置一对键值对,返回map实例。 m.set('hobby', 'sing'); console.log(m); m.set(undefined, 8); console.log(m); // m.set(Symbol('name'), 9); console.log(m); //get方法 获取指定键名的键值,返回键值。 console.log(m.get('name')); //wangeu //delete方法删除指定的键值对,删除成功返回:true,否则返回:false。 console.log(m.delete('name')); //true console.log(m.get('name')); //undefined //has方法 判断Map实例内是否含有指定的键值对,有就返回:true,否则返回:false。 console.log(m.has(null)); //true // entries( )方法作用:返回实例的键值对遍历器。 console.log(m.entries()); console.log(m.entries().next()); // keys( )方法:返回实例所有键名的遍历器。 // values( ) 方法:返回实例所有键值的遍历器。 console.log(m.keys()); console.log(m.keys().next()); console.log(m.values()); console.log(m.values().next()); //forEach方法 m.forEach(function (value, key) { console.log(key + ':' + value); }); /// clear() 删除所有键值对。 m.clear(); console.log(m); //Map(0) {}
遍历map
map.forEach((value,key)=>{})
WeakMap
WeakMap的键只能是引用类型
new WeakMap()
-
set
-
get
-
delete
-
has
-
clear