ES6中为我们新增了一个原始数据类型Symbol,让我为大家介绍一下吧!
 Symbol它表示是独一无二的值
 Symbol要如何创建
 第一种创建方式:
    let sy = Symbol()
第二种创建方式:
    let sy = Symbol.for()
具体独一无二在哪呢?它们的地址不相同。
    let sy = Symbol("name")let sy1 = Symbol("name")console.log(sy === sy1) //false
但如果我们使用Symbol.for创建
    let sy = Symbol.for("name")let sy1 = Symbol.for("name")console.log(sy === sy1) // true
Symbol不能与其他数据进行运算
    let sy = Symbol()console.log(sy + 1) //报错console.log(sy > 1) //报错console.log(sy + "1") //报错
Symbol可以作用在哪呢?
 用来定义对象的私有变量
 如何写入对象?
 第一种:
    let sy = Symbol("sy1")const obj = {}obj[sy] = "私有的"console.log(obj)
第二种:
    let sy = Symbol("sy1")const obj = {[sy] : "私有的"} console.log(obj)
第三种添加的键值:
    const obj = {sy : Symbol("私有的")} console.log(obj)

 我们可以用keyFor来获取Symbol.for()创建的值
    let sy = Symbol.for("hello")console.log(Symbol.keyFor(sy))//hello
我们怎么获取呢?可以使用 对象[ ]的方法取到
 记住取Symbol的值时,不能用点(.)取
//获取成功
console.log(obj[sy]) //私有的
我们用点(.)取值试一下,取到undefined
console.log(obj.sy) //undefined
我们该如何循环取到Symbol
 我们用对象的for in方法试一试
 由此可见,取不到Symbol
    let sy = Symbol("hello")const obj = {name:"张三",age:18,}obj[sy] = "私有的"for(let k in obj) {console.log(obj) //{name: '张三', age: 18, Symbol(hello): '私有的'}console.log(k) //name ageconsole.log(obj[k]) //张三 18}
我们使用getOwnPropertySymbols()
    let sy = Symbol("hello")const obj = {name:"张三",age:18    }obj[sy] = "私有的"let a = Object.getOwnPropertySymbols(obj)console.log(a)

感谢大家的阅读,如有不对的地方,可以向我指出,感谢大家!