ES6:Symbol 和 Symbol 属性

1. 概念

  Symbol 是ES6中新引进的原始数据类型,主要作用是可以表示独一无二的值,比如定义对象唯一的属性名,定义不会重复的常量

 

2. 基础用法 Symbol('描述符') 描述信息可有可无

  注意事项:

  (1) Symbol 不是构造函数,不能用 new Symbol(),否则会报错

  (2) Symbol() 括号中的内容代表 Symbol 的描述,只是方便开发辨识,并不是 Symbol 的值

  (3) 每个 Symbol 初始的值都是独一无二,不能划等号,但是赋值后,是可以判断相等的

let s = Symbol(8888) let n = Symbol(8888) let a = { [s]: 'name', [n]: 'name' } console.log(s == n, s, n) // false Symbol(8888) Symbol(8888) console.log(a[s] === a[n],a) // true {Symbol(8888): 'name', Symbol(8888): 'name'}

  (4) Symbol 不能和其他值参与运算

  (5) Symbol 可以转为字符串,布尔值,但是不能转为数字

 

3. 高级用法

  使用Symbol可以定义对象的唯一属性名。这类属性不会被Object.keys()或者for…in遍历到,起到保护个别隐私属性的作用

  注意事项:

  (1) Symbol 值作为对象的属性名时,不能使用点运算符

  (2) 如果要访问Symbol属性对应的值,需要使用中括号[ ]


__EOF__

本文作者cros
本文链接https://www.cnblogs.com/liql/p/16902400.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   cros  阅读(154)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示