# Symbol 基本使用

ES6 引入了一种新的原始数据类型 Symbol, 表示独一无二的值。它是 Javascript 语言的第七种数据类型,是一种类似于字符串的数据类型

Symbol 特点

  • Symbol 的值是唯一的,用来解决命名冲突问题
  • Symbol 值不能与其他数据进行运算
  • Symbol 定义的对象属性不能使用 for…in 循环遍历,但是可以使用 Reflect.ownkeys 来获取对象的所有键名
1
2
3
4
5
6
7
8
9
10
11
//创建Symbol
let s = Symbol()

let s2 = Symbol('hello')
let s3 = Symbol('hello')
console.log(s2 === s3) //false

//Symbol.for创建
let s4 = Symbol.for('hello')
let s5 = Symbol.for('hello')
console.log(s4 === s5) //true