Symbol常用方法与特点

参考转载 Symbol地址:
https://es6.ruanyifeng.com/#docs/symbol
ES6引入了一种新的原始基本数据Symbol,它是 JavaScript 语言的第七种数据类型,前六种是:undefined、null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)。
今天整理了Symbol的几个比较常用特点跟方法。

Symbol认识
  1. 唯一性
 const s = Symbol(); //创建一个Smbol类型的数据
 console.log(s)
 const x = Symbol();

在这里插入图片描述

  1. 每一个Symbol值都有一个标记字符串,通过Symbol.description属性去拿到
  // 给Symbol类型的数据分配一个字符串
        const c = Symbol('foo');
        const d = Symbol('rdd');
        console.log(c.description)
        console.log(d.description)

在这里插入图片描述

  1. Symbol作为属性名时,一定要加 [ ]
    对象的属性(实例的属性)一般只有两种类型:字符串,Symbol
    在这里插入图片描述
    在这里插入图片描述
    如果说这样子赋值,想要取到90,可以解构一下:
  obj[Symbol()] = 90

在这里插入图片描述

  1. Symbol.for()
    会以标记字符串登记
    不仅是个Symbol值还会把for里的字符串跟Symbol做一个一一对应
    接受一个字符串,返回一个Symbol值,同时会在全局注册一个该字符串和Symbol值的对应关系
    如果该字符串已经注册过了,就返回其对应的Symbol值
 // 注册Symbol与字符串的关系
        const e = Symbol.for('e')
        const f = Symbol.for('e')
        console.log(e === f)//true

在这里插入图片描述

  1. Symbol.keyFor() :
    返回登记的key,接受一个Symbol值,返回其对应的字符串,针对由fro生成的Symbol值
    在这里插入图片描述
  2. 根据属性名划分
    属性名是字符串类型
    属性名是Symbol类型
    通过obj.getOwnPropertySymbol 获取自身的属性Symbol值 获取实例自身的以Symbol类型作为key的属性
  object.getOwnPropertySymbol(obj)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值