美文网首页
es6之Symble和Map

es6之Symble和Map

作者: 关耳木南 | 来源:发表于2019-07-14 22:15 被阅读0次
<script type="text/javascript">
// Symbol值只能转为string和boolean
    var a = Symbol("123");//传的参数是标记
    var b = Symbol();

    console.log(a);
    console.log(b)
    /*
        Set : es6提供了新的数据结构,类似于数组,但成员的值都是唯一的
        没有重复值
        方法:add() delete() has() clear()
        WeakSet 和Set一样,区别有2点
            1、WeakSet的值只能是对象
        

     */
    const s = new Set();
    s.add(1);
    console.log(s);
    s.add(2);
    console.log(s);
    [2,3,4,5,2,2].forEach(x => s.add(x));//通过add()方法添加元素
    for(let i of s){
        console.log(i)
    }
    //去重
    const arr=[1,2,3,1,3,5,6,7];
    arr1 = [...new Set(arr)];
    console.log(arr1);
</script>
<script type="text/javascript">
    /*
        Map : 各种类型的值(包括对象)都可以当做键
        WeakMap : 和Map类似
            区别:WeakMap只接受对象作为键名,
                  WeakMap的键名所指向的对象,不计入垃圾回收机制
     */
    const m = new Map();
    const o = {p:'hello'};
    m.set(o,"content");//设置set()
    console.log(m.get(o));// content 获取get()

    m.has(o);//是否存在
    m.delete(o);//删除
    m.has(o)
</script>

相关文章

网友评论

      本文标题:es6之Symble和Map

      本文链接:https://www.haomeiwen.com/subject/yvfwkctx.html