Es6中Symbol

Symbol是es6新引入的原始数据类型,最大的特点就是其可以表示独一无二的值


一、创建Symbol 

创建symbol有两种方式

1、通过Symbol()来创建一个Symbol值

(1)symbol最大的特点就是其表示的值是独一无二的

由此可见,虽然s1s2在控制台输出结果一样,但其实是两个不一样的Symbol值


(2) 为了可以更好区分symbol,我们可以在创建的时候带上参数,来唯一标识该symbol,当然不论参数是否一样,其表示的值都是不一样的   

(3)注意创建的时候不能使用new,否则会报错,提示我们Symbol不是一个构造函数

 因为Symbol()是基础数据类型,返回的是一个值并不是对象


应用

可以用来定义对象的唯一属性名,加入一个已存在的属性


 2、通过Symbol.for()创建一个symbol()值

(1)与symbol()不同的是,使用symbol.for()时候,会首先在全局搜索是否存在以该参数为名称的symbol值,如果有则返回该symbol,没有则新建一个

 由此可见,使用symbol.for()创建时,如果参数一样,不论调用几次,其得到的值都是同一个


(2)这里注意,由于symbol没有登记机制,所以通过symbol()创建的值,通过symbol.for()是找不到的

 因为symbol.for()找不到key为symbol的值,所以会在全局创建一个,并且登记在symbol表中


二、查找

symbol.keyFor()

返回Symbol值的key

与symbol.for()一样,symbol.keyFor()是在登记表中查找该Symbol值是否存在,存在则返回该值的key,不存在则返回undefined

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值