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属性对应的值,需要使用中括号[ ]

posted @ 2022-11-18 10:28  cros  阅读(171)  评论(0)    收藏  举报