es6新增数据类型->Symbol / set / map

1.Symbol() 类型 : 表示独一无二的值 . 

作用:解决命名冲突

设置格式: Symbol(' 值 ')

Symbol特点:

        Symbol中的值都是唯一的,即使相同也不相等

        Symbol可以转换为字符串与布尔值, 不可以转换为数值

        内置属性description,可以查看内容

声明方式有两种 :  Symbol(值) 和 Symbol.for(值)

Symbol声明与Symbol.for声明有什区别?

symbol声明的值,相同也不相等

Symbol.for声明的值,相同既相等

2.数据结构 set 与 map
            生成Set                  new Set()
            增加                     对象.add()
            查看是否有对应值        对象.has()
            清空                  对象.clear()
            长度                  对象.size
        set最大的特点: 值不可以重复

        set和map的介绍:
        set和map都是es6新增的数据结构。其中set是一个类数组结构,值是唯一的,没有重复的               值。map类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值              (包 括对象)都可以当作键。也就是说,Object 结构提供了“字符串—值”的对应,Map 结构            提供了“值—值”的对应,是一种更完善的 Hash 结构实现。如果你需要“键值对”的数据结构,          Map 比 Object 更合适。

                set集合特点

                        1. 内容不可以重复

                        2. 写入集合中的数据不会自动转换类型

                        3. 在set中相同的对象不相等

                        4. 在set NaN是相等的

        


        如何用es6方式为数组去重?
        1. 把数组转为set格式,实现了去重
        2. 把去得后的set格式,通过Array.from的方式转为数组 

               代码如下:

let arr1 = [1,2,3,1,2,3];
let myset = new Set(arr1);

let myarr = Array.from(myset);
console.log(myarr);

weakset与set的区别
       特点:
           1. weakset的值必需为对象!!!!
           2. weakset操作方法较少
           3. weakset不可以遍历 

      map类似于对象
            1.生成   new map()
            2.创建值 对象.set('键','值');
            3.读取值 对象.get('键');
            4.清空   对象.clear();
            5.删除   对象.delete('键')
            6.长度   对象.size 

        WeakMap()特点:
            下标(属性):必需为对象

    let myweak = new WeakMap();
    myweak.set(window,'王五');
    myweak.set({name:'赵六'},'aaaa');
     console.log('weak',myweak); 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值