美文网首页
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