当前位置:网站首页>es6新增-Symbol数据类型
es6新增-Symbol数据类型
2022-07-17 05:05:00 【卷心菜007】

1.Symbol是新增的一种数据类型,表示一种独一无二的(任意两个Symbol类型都是不相等的),
Symbol类型也是基本类型的一种,通过Symbol函数得到
const sym1 = Symbol()
const sym2 = Symbol()
console.log(sym1)
console.log(typeof sym1)
console.log(stm1 === sym2)

2.Symbol函数可以接受一个字符串作为参数,表示对该Symbol实例的描述,比较容易区分
const sym3 = Symbol("name")
const sym4 = Symbol("address")
console.log(sym3)
console.log(sym4)
console.log(sym3 === sym4)

const sym3 = Symbol("name")
const sym4 = Symbol("name")
console.log(sym3)
console.log(sym4)
console.log(sym3 === sym4)

Symbol相等与否与Symbol()内描述信息没有关系
3.如果描述信息一样,想得到两个一样的Symbol()值,可以使用Symbol.for()
const sym5 = Symbol.for("name")
const sym6 = Symbol.for("name")
console.log(sym5)
console.log(sym5 === sym6)

4.用途:作为对象的属性,好处是属性不会覆盖(每个从Symbol()返回的symbol值都是唯一的,symbol作为对象属性的标识符,这是该数据类型仅有的目的)
注意:
- Symbol值作为对象属性名时,不能用点运算符.
- Symbol作为属性名,遍历对象时,该属性不会出现在for .. in循环中,也不会被Object.keys() / Object.getOwnPropertyNames() / JSON.stringify() 返回
- 通过Object.getOwnPropertySymbol()方法,可以获取指定对象的所有Symbol属性名
Object.getOwnPropertySymbol()是用来专门获取指定对象的所有Symbol属性名的
const key1 = Symbol("tiger")
const key2 = Symbol("flag")
const o = {
a:1, b:2,
[key1]: 2022, [key2]:"暴富" }
console.log(o[key1],o[key2])
//变量作为对象的属性的时候,通过方括号添加变量为属性
等价于 : o[key1] = 2022 o[key2] = "暴富"
console.log(Object.key(o) )
console.log(Object.getOwnPropertySymbols(0))

边栏推荐
- Chat about global filter
- POC——DVWA‘s XSS Reflected
- 泰迪杯A题完整版 优化更新(4/23)
- 【Batch】批量删除中间文件夹-个人研究脚本
- 【C语言—零基础第六课】输入输出语句格式与复合语句
- 租用服务器,以及部署在pycharm专业版上的pytorch环境训练yolov5模型教程服务器环境安装库文件:
- 【C语言—零基础_学习_复习_第四课】数据类型及其运算
- Simple use of directexchange switches.
- Teddy Cup title a full version optimization update (4/23)
- Pygame:外星人入侵
猜你喜欢
随机推荐
C语言初学者之初识代码专项练习
ModelArts第二次培训笔记
Chat about global filter
学习C语言第三天
The code of yolov5 model for pest identification in Title A of the 10th Teddy cup data mining challenge (has been run through, original works, continuously updated)
无重复字符的最长字串
SMS verification test without signature template audit
PyGame installation -requirement already satisfied
(精讲)Es6 剩余参数,ES6内置对象,模板字符串内容(详例宝典)及灵活运用项目的实战案例
IDL调用6S大气校正
【Batch】批量删除中间文件夹-个人研究脚本
Infinite classification
【C语言—零基础第九课】函数中的爱恨情仇
HarmonyOS第三次培训笔记
读论文《SNUNet-CD: A Densely Connected Siamese Network for Change Detection of VHR Images》
异步数据-短信验证码
PCA feature dimensionality reduction of machine learning + case practice
[batch] batch delete intermediate folder - personal research script
泰迪杯A题完整版 优化更新(4/23)
C语言练习题









