ES6: Symbol

Symbol是新增的一种数据类型,它用于生成唯一的标志

Symbol实例

实例一个Symbol:

const Tom = Symbol('Tom');

其中括号内写的是对这个变量的描述

简单应用

比如你在班级里,可能有两个人都叫李狗蛋,用一个对象来记录他们的分数:

const students = {
	'王建国' : { Chinese: 78, English: 65, math: 82 },
	'李狗蛋' : { Chinese: 84, English: 56, math: 63 },
	'李狗蛋' : { Chinese: 43, English: 55, math: 71 },
}

对其进行打印,只会得到一个李狗蛋的成绩:
在这里插入图片描述
这个问题就可以用Symbol来解决:

const students = {
	[Symbol('王建国')] : { Chinese: 78, English: 65, math: 82 },
	[Symbol('李狗蛋')] : { Chinese: 84, English: 56, math: 63 },
	[Symbol('李狗蛋')] : { Chinese: 43, English: 55, math: 71 },
}

在这里插入图片描述
注意
1️⃣ 在对象中定义属性名时,像上面的例子一样,需要使用计算属性( […] )的方式来定义
2️⃣ 对象的属性名为Symbol定义的不能遍历(比如不能使用for in循环)
可以使用 Object.getOwnPropertySymbols() 方法,该方法会返回一个给定对象自身的所有 Symbol 属性的数组:

const symStudents = Object.getOwnPropertySymbols(students);
console.log(symStudents);

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值