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
 
 
posted @ 2020-09-04 11:59  帅气巴巴  阅读(168)  评论(0编辑  收藏  举报